【问题标题】:Cannot load image from PARSE into PFTableViewCell's imageView property无法将图像从 PARSE 加载到 PFTableViewCell 的 imageView 属性中
【发布时间】:2015-04-14 06:10:35
【问题描述】:

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

“fromUser”和“toUser”是指向用户类的指针,我需要查询结果中包含的每个用户的用户名和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
  • 控制器链接到情节提要中的视图

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

谢谢,

【问题讨论】:

    标签: swift parse-platform parseui


    【解决方案1】:

    我找到了一个实际上效果很好的解决方法:

    1. 在您的 TableView(故事板)中创建一个原型单元格并将其类设置为普通的“UITableViewCell”
    2. 将此单元格的reuseIdentifier 属性设置为您喜欢的值
    3. 让您的自定义单元格的文件所有者(我为此单元格创建了一个 nib 文件)成为 PFTableViewCell 的子类
    4. 为 textLabel 和 imageView 创建自定义 outlet
    5. 在 TableViewController 中为步骤 2 中设置的重用标识符注册 Nib
    6. 最后,像这样在 cellForRowAtIndexPath 方法中使用该类:

      让单元格:PeopleTableViewCell! = tableView.dequeueReusableCellWithIdentifier("peopleCell") as? PeopleTableViewCell

    我希望这也能解决您的问题。

    问候,

    [编辑]:似乎 SO 不喜欢我的代码 sn-p 被格式化。它嵌入在代码标签中..

    【讨论】:

      【解决方案2】:

      PFTableViewCell 不适用于标准样式。所以你必须让你的单元格成为一个自定义单元格。

      这些是我为使其工作而采取的步骤(在情节提要中):

      • 用你自己的类子类 PFTableViewCell
      • 在情节提要中,使用 custom 单元格自定义原型单元格
      • 从调色板中拖动一个 UIImageView,然后将其类设置为 PFImageView
      • 将其连接到 PFQueryTableViewController 子类中的 IBOutlet
      • 按照您的方式在 PFQueryTableViewController 中实现 cellForRowAtIndexPath:(您的代码没有问题)。

      这种方式对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        相关资源
        最近更新 更多