2016-12-03 2 views
0

У меня естьКак настроить пользовательский UITableViewRowAction в зависимости от IndexPath.row?

  • Tableview (UITableView)
  • customCell: UITableViewCell!
  • itemsArray: [Item]

Я попытался установить пользовательские действия для ячейки в UITableView в зависимости от IndexPath.row.

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) 
-> [UITableViewRowAction]? { 

    if !(itemsArray[indexPath.row].isReadOnly) { 

    let editAction = UITableViewRowAction(style: .normal, title: "Edit") { 
     (tableViewRowAction, indexPath) in 
     print("Edit Item \(self.itemsArray[indexPath.row].caption)\n") 
    }  
    return [editAction] 
    } else { 
    return [] 
    } 
} 

Я попытался установить пользовательские действия для ячейки в UITableView в зависимости от IndexPath.row:

Проблема возникает с клетками, которые я хочу быть без действий (которые соответствующие пункты имеет .IsReadOnly = верно)

я пытался вернуть ноль и [] в остальном случае и оба варианты имеет ненужный результат для считывания: - ноль - Удалить действие показывает для элементов - [] - Cell пойло немного, «unswipes» назад чем удары перестают работать любая клетка

ответ

0

Я нашел решение: просто использовать метод canEditRowAt из UITableView

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
    return !(items[indexPath.row].isReadOnly) 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^