无法将PARSE中的图像加载到PFTableViewCell的imageView属性中

时间:2015-04-14 06:10:36

标签: swift parse-platform parseui

我正在使用PFQueryTableViewController并将其设置为仅查找已被批准或发送给他的此用户的友情。

" FROMUSER"和"到用户"指向用户类的指针,我需要查询结果中包含的每个用户的用户名和profilePicture。

现在我尝试在我的cellForRowAtIndexPath方法中获取它们并加载图像:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {


    let cellIdentifier = "contactCell"

    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as! PFTableViewCell

    if let user = object?["fromUser"] as? PFUser {

        user.fetchInBackgroundWithBlock({ (user, error) -> Void in

            if error != nil {

                println("Could not fetch user object")
            }

            let user = user as! PFUser
            cell.textLabel?.text = user.username!
            cell.imageView?.file = user["profilePicture"] as? PFFile
            cell.imageView?.loadInBackground()
        })



    } }

获取在tableView中显示的用户名工作正常,但实际上从未加载图像。我尝试了不同的方法来加载图像,但我的单元格的imageView属性总是为零。

  • 原型的类设置为PFTableViewCell
  • 控制器链接到情节提要中的视图

请让我知道,如果你们知道为什么这个内置属性是零,以及如何解决这个问题。

谢谢,

2 个答案:

答案 0 :(得分:0)

Well I found a workaround which actually works quite good:

  1. Create a prototype cell in your TableView (Storyboard) and set it's class to the normal "UITableViewCell"
  2. Set the reuseIdentifier property of this cell to a value of your liking
  3. Let your custom cell's file owner (I created a nib file for this cell) to be a subclass of PFTableViewCell
  4. Create custom outlets for the textLabel and imageView
  5. Register that Nib for the reuseIdentifier set in Step 2 in your TableViewController
  6. Finally, use that class in your cellForRowAtIndexPath method like this:

    let cell: PeopleTableViewCell! = tableView.dequeueReusableCellWithIdentifier("peopleCell") as? PeopleTableViewCell

I hope this will fix your problems too.

Regards,

[Edit]: It seems like SO doesn't like my code snippet to be formatted. It's embedded in code tags..

答案 1 :(得分:0)

PFTableViewCell不适用于标准样式。因此,您必须使您的单元格成为自定义单元格。

这些是我为使其工作而采取的步骤(在故事板中):

  • 使用您自己的类
  • 子类PFTableViewCell 故事板中的
  • ,使用自定义单元格
  • 自定义原型单元格
  • 从调色板中拖出UIImageView,然后将其类设置为PFImageView
  • 将其连接到PFQueryTableViewController子类中的IBOutlet
  • 在PFQueryTableViewController中实现cellForRowAtIndexPath:你的方式(你的代码没问题)。

这种方式对我有用。