PFImageView 问题:无法在表格视图单元格中显示来自 Parse 的图像

Posted

技术标签:

【中文标题】PFImageView 问题:无法在表格视图单元格中显示来自 Parse 的图像【英文标题】:PFImageView issue: Can't display images from Parse in table view cells 【发布时间】:2014-05-31 12:27:07 【问题描述】:

我正在尝试在UITableViewCell 中显示带有PFImageView 的图像。在另一个视图控制器中,我成功地完成了它(没有 tableview)。如果self.senderId 不是零,我会查询图像并将其加载到单元格中,但SUCCESS 日志不会出现在控制台中,因此我可能错过了查询中的某些内容(在我的其他视图我在块内使用 [self.profilePic loadInBackground]。(但是应用程序正在运行并且我没有收到任何错误,只是图像视图中没有出现任何内容。)如果有人可以帮助我,我会很高兴解决这个问题,因为我不知道我的实现有什么问题。

- (void)viewDidLoad

    [super viewDidLoad];

    if (self.senderId == nil) 
        NSLog(@"No updates.");
    
    else 
        PFQuery *queryImage = [PFQuery queryWithClassName:@"UserPicture"];
        [queryImage whereKey:@"user" equalTo:self.senderId];
        [queryImage orderByDescending:@"createdAt"];
        [queryImage getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) 
            if (error) 
                NSLog(@"ERROR.");
             else 
                PFFile *file = [object objectForKey:@"imageFile"];
                self.senderPicture = file;

                NSLog(@"SUCCESS");
            
        ];
    

    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(reloadTable) userInfo:nil repeats:YES];

    [self setupUIForInput];



-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 


    OutputTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellThree"];

    cell.textOutput.text = self.senderId;

    if (self.senderId == nil) 
        NSLog(@"No updates.");
    
    else 
    cell.self.profilePic.file = self.senderPicture;
    [cell.self.profilePic loadInBackground];

    
        return cell;


-(void)reloadTable
    [tableViewThree reloadData];

我也试过这个:

- (void)viewDidLoad

    [super viewDidLoad];

    if (self.senderId == nil) 
        NSLog(@"No updates.");
    
    else 
        PFQuery *queryImage = [PFQuery queryWithClassName:@"UserPicture"];
        [queryImage whereKey:@"user" equalTo:self.senderId];
        [queryImage orderByDescending:@"createdAt"];
        [queryImage getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) 
            if (error) 
                NSLog(@"ERROR.");
             else 
                self.file = [object objectForKey:@"imageFile"];


                NSLog(@"SUCCESS");
            
        ];
    

    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(reloadTable) userInfo:nil repeats:YES];

    [self setupUIForInput];



-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 


    OutputTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellThree"];

    cell.textOutput.text = self.senderId;

    if (self.senderId == nil) 
        NSLog(@"No updates");
    
    else 
    cell.self.profilePic.file = self.file;
    [cell.self.profilePic loadInBackground];

    
        return cell;

【问题讨论】:

【参考方案1】:

问题解决了。

问题是我为 self.senderId [queryImage whereKey:@"user" equalTo:self.senderId]; 使用了 NSString 而不是 PFUser 对象 [queryImage whereKey:@"user" equalTo:currentuser];

【讨论】:

以上是关于PFImageView 问题:无法在表格视图单元格中显示来自 Parse 的图像的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 上的 PFImageView 断断续续的滚动

表格视图单元格的自动高度尺寸无法正常工作

无法在表格视图中选择单元格 - swift

无法添加一致的高度和填充。动态表格视图单元格之间

无法在 Bundle 中为自定义表格视图单元格类加载 NIB

无法将内容添加到 IB 视图控制器中的自定义表格视图单元格