Невозможно реализовать ячейку Tableview с действием как для изображения, так и для строки с помощью Parse
У меня проблемы с получением изображения и действия строки в ячейке табличного представления одновременно. Я могу заставить работать несколько различных перестановок (действие строки работает, но изображение загружается только после активации действия строки, загрузки изображения, но действие строки недоступно), но я не могу заставить изображение загружаться при загрузке страницы и иметь доступное действие строки.
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 в viewDidLoad
запрос (ниже), но я не могу заставить это работать. Возможно, ответ состоит в том, чтобы решить эту проблему, а не помещать запрос в 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()