Я пытаюсь обновить мой тип ячейки ячейки, когда я нажимаю на ячейку. вот код:быстрое обновление ячейка принадлежности тип
var selectedCellArray :[FriendTableViewCell] = []
var friends: [PFUser] = []
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var selectedCell = self.tableView(tableView, cellForRowAtIndexPath: indexPath) as FriendTableViewCell
if (selectedCell.accessoryType == UITableViewCellAccessoryType.None){
selectedCell.accessoryType = .Checkmark
selectedCellArray.append(selectedCell)
}else if (selectedCell.accessoryType == UITableViewCellAccessoryType.Checkmark){
selectedCell.accessoryType = .None
var index = 0
for cell in selectedCellArray{
if (cell != selectedCell){
index++
}else{
break
}
}
selectedCellArray.removeAtIndex(index)
}
self.tableView(tableView, cellForRowAtIndexPath: indexPath)
}
и
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("friend") as? FriendTableViewCell ?? FriendTableViewCell()
var round = 0
var friend: AnyObject = self.friends[indexPath.row]
cell.firstNameLabel.text = friend["firstName"] as? String
cell.lastNameLabel.text = friend["lastName"] as? String
println(selectedCellArray)
round++
var hasFound = false
if (self.checkSelectedArray(selectedCellArray, target: cell)){
cell.accessoryType = .Checkmark
}else{
cell.accessoryType = .None
}
cell.firstNameLabel.sizeToFit()
cell.lastNameLabel.sizeToFit()
return cell
}
func checkSelectedArray(selectedArray:[FriendTableViewCell], target:FriendTableViewCell) -> Bool{
for cell in selectedCellArray{
if cell.isEqual(target){
return true
}
}
return false
}
Кроме того, есть встроенный метод, как array.contain? В настоящее время я написал функцию самостоятельно, чтобы проверить, если массив имеет определенный элемент ......
Пожалуйста, помогите мне ... Я застрял на эту проблему в течение около 8 часов
Нельзя хранить ссылку на ячейку в вашем 'selectedCellArray', поскольку ячейки могут повторно использоваться при прокрутке таблицы. Вы не можете использовать текущий тип аксессуаров ячейки по той же причине. Вы должны сохранить номер строки для выбранных ячеек. Вы также можете использовать 'NSIndexSet'. Это немного сложно, если вы разрешаете переупорядочивать строки, вставлять или удалять, однако, поскольку вам необходимо обновить сохраненные индексы, – Paulw11