使用 Parse 将缩略图图像加载到表格单元格中的问题

Posted

技术标签:

【中文标题】使用 Parse 将缩略图图像加载到表格单元格中的问题【英文标题】:Issue loading a Thumbail Image into Table Cell Using Parse 【发布时间】:2015-01-02 23:20:38 【问题描述】:

我正在使用 parse.com 制作一个简单的应用程序,它可以在线检索数据并填写我的表格。我已经成功地填充了我的表格单元格文本标签,但是当我尝试检索图像时,我的 PFTableViewCells 中什么也没有显示。

我的代码如下:

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> PFTableViewCell! 
    let cell = tableView.dequeueReusableCellWithIdentifier("reuse", forIndexPath: indexPath) as PFTableViewCell
    var image : UIImage = UIImage(named: "first")!
    cell.textLabel?.text = object.objectForKey("Name") as? String
    var thumbnail:PFFile = object.objectForKey("Image") as PFFile
    cell.imageView?.image = UIImage(named: "first")
    cell.imageView?.file = thumbnail
    cell.imageView?.loadInBackground()
    return cell

我的设置有什么问题吗?

【问题讨论】:

很多人对此感到困惑。即使您在后端将图像保存为 PFFile,您也可以通过代码将其作为数据检索。看我的回答here for reference 【参考方案1】:

在 Parse PFFile 中,将图像存储为二进制数据,以便您可以在 NSData 中获取它并将该 NSData 转换为图像。我正在向您展示我用来从目标 C 中的解析对象获取图像的代码,希望它对您有用。

-(void)myParseObject:(PFObject *)obj

 //postImageFile is key in which PFFile is stored in parse

[[obj objectForKey:@"postImageFile"] getDataInBackgroundWithBlock:^(NSData *data, NSError *error) 
        if (!error) 
            UIImage *image = [UIImage imageWithData:data];
            // image can now be set on a UIImageView

        
    ];

【讨论】:

【参考方案2】:

从现有示例中我也遇到了麻烦;这就是最终奏效的方法。从解析中获取对象时:

let thumbnail  = object["toImage"] as PFFile?

然后,在 cellForRowAtIndexPath 中:

// set thumbnail image if available (must set to placeholder image first!)
cell!.imageView!.image = UIImage(named: "Placeholder")

// get image from parse.com
let thumbView   = PFImageView()

if thumbnail != nil 
    thumbView.file  = thumbnail
    thumbView.loadInBackground(
        (image, error: NSError!) in
        if error == nil 
            cell!.imageView!.image = image
        
    )

【讨论】:

以上是关于使用 Parse 将缩略图图像加载到表格单元格中的问题的主要内容,如果未能解决你的问题,请参考以下文章

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

将远程图像加载到 Tableview 单元格中

以编程方式在tablerow单元格中添加多个图像

图像不适合自定义表格视图单元格中的图像视图

图像的滚动视图在自定义表格视图单元格中不起作用

UIImageView 重复显示在另一个单元格中