У меня есть таблица, разделенная на разделы, я должен печатать номер строки и раздела, когда я нажимаю кнопку в ячейке. Как я могу получить это?
Как получить indexPath.section и indexPath.row при нажатии кнопки в ячейке?
comment
@vadian, что касается вопроса, я понимаю, что речь идет не об обнаружении кнопки в ячейке, а о получении строки и раздела из этой ячейки. Вы можете использовать это закрытие в ссылке, предоставленной vadian, кроме того, вы можете передать indexpath в качестве параметра закрытия
- person Ajay Singh Mehra   schedule 29.09.2017
comment
Связанный вопрос описывает способ получения indexPath.section и indexPath.row при нажатии кнопки в ячейке.
- person vadian   schedule 29.09.2017
Ответы (2)
Сохраните indexPath
в своей ячейке и получите его при нажатии кнопки.
Контроллер табличного представления
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "custom") as! CustomTableCell
cell.indexPath = indexPath
return cell
}
Пользовательская ячейка таблицы
class CustomTableCell: UITableViewCell {
var indexPath: IndexPath!
@IBAction func buttonPressed() {
print(indexPath)
}
}
person
Tamás Sengel
schedule
28.09.2017
Нет необходимости сохранять путь индекса в настраиваемой ячейке tableview, когда путь индекса передается в метод делегата tableView:didSelectCellAtIndexPath.
- person tww0003; 28.09.2017
Имейте в виду, что OP хочет получить
indexPath
при нажатии кнопки, а не саму ячейку.
- person Tamás Sengel; 28.09.2017
А, я неправильно понял вопрос. Создавать пользовательскую ячейку по-прежнему не нужно. Когда кнопка нажата, захватите ячейку таблицы со свойством super view кнопки. Затем использовали метод indexPathForCell для табличного представления, чтобы получить путь к индексу.
- person tww0003; 28.09.2017
Реализуйте метод tableView:didSelectRowAtIndexPath:. Когда он будет вызван, будет передан NSIndexPath со свойствами раздела и строки.
Этот метод будет вызываться каждый раз, когда нажимается ячейка таблицы. Индексный путь будет индексным путем ячейки, которая была нажата.
https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614877-tableview
РЕДАКТИРОВАТЬ:
Я неправильно понял вопрос. Когда кнопка нажата, получите TableViewCell от кнопки, получив доступ к суперпредставлению кнопки. Затем используйте метод indexPathForCell TableView, чтобы получить indexPath кнопки.
person
tww0003
schedule
28.09.2017