无法使用Parse实现具有图像和行动作的Tableviewcell

时间:2015-12-12 03:13:12

标签: ios swift uitableview parse-platform uitableviewrowaction

我无法同时在表格视图单元格上获取图像和行动作。我可以得到一些不同的排列工作(行动作但图像仅在行动作激活后加载,图像加载但行动作不可用)但我无法在页面加载时加载图像并使行动作可访问。 / p>

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("childrenCell", forIndexPath: indexPath) as! ChildrenTableViewCell

    cell.textLabel?.text = childFirstName[indexPath.row]
    cell.detailTextLabel?.text = childLastName[indexPath.row]


    self.childImage[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
        if error == nil {
            let image = UIImage(data: imageData!)
            cell.imageView?.image = image

        }
      self.tableView.reloadData()
    }

    return cell
}

以上代码用于使用数据填充单元格。如果我移动self.tableView.reloadData(),我会得到不同的组合(但不是我想要的组合)。行动作的代码非常标准,为用户提供了两个选项。

另一方面,我更倾向于在viewDidLoad查询(下面)中从Parse获取数据,但我似乎无法使其工作。也许答案是解决该问题而不是将查询放在cellForRowAtIndexPath

    let query = PFQuery(className:"children")
    query.whereKey("programID", equalTo: passedProgramID!)
    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil {
            print("Successfully retrieved \(objects!.count) children.")
            if let objects = objects {
                for object in objects {
                    self.childFirstName.append(object["childFirstName"] as! String)
                    self.childLastName.append(object["childLastName"] as! String)
                    self.childImage.append(object["childImage"] as! PFFile)  
                }
            }
        } else {
            print("Error: \(error!) \(error!.userInfo)")
        }
    }
        self.tableView.reloadData()

0 个答案:

没有答案