0

我无法同时在表格视图单元格上获取图像和行操作。我可以获得一些不同的排列方式(行操作有效,但图像仅在行操作激活后加载,图像加载但行操作不可用)但我无法在页面加载时加载图像并且无法访问行操作。

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()走动,我会得到不同的组合(但不是我想要的组合)。行操作的代码非常标准,为用户提供了两个选项。

附带说明一下,我更喜欢从 Parse in viewDidLoadquery 中获取数据(如下),但我似乎无法让它工作。也许答案是解决这个问题,而不是将查询放在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()
4

0 回答 0