У меня есть UITableView, в котором включен множественный выбор. Я использовал «выбор», чтобы реально изменить высоту строк, показывая дополнительные детали, когда «выбран». Например.UITableView multi selection and swipe actions
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
self.tableView.beginUpdates()
self.tableView.endUpdates()
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return (self.tableView.indexPathsForSelectedRows?.contains(indexPath) ?? false) ? 200 : 92
}
Это, похоже, работает очень хорошо. Пока я не начну делать какие-либо действия. Когда я добавляю какие-либо действия по удалению, действие салфетки, кажется, очищает все мои выборы. Я действительно хотел отменить выбор того, который я прокрутил, так что он будет сжиматься. Но очистка всех моих выборов не вызывает каких-либо нормальных обратных вызовов делегатов. Даже если у меня есть allowsMultipleSelectionDuringEditing
, установите значение true.
Есть ли способ сделать это? Должен ли я пропускать (ab), используя состояние выбора, как способ указать, показывает ли строка детали с разной высотой или нет? Или есть способ использовать его в сочетании с поведением ударов, выполняемых в «режиме редактирования», и очисткой всех моих выборов?
Сделайте этот ответ, если вы хотите, чтобы некоторые кредиторы @sticker. В итоге я закончил работу, и она отлично поработала. Итог - не злоупотреблять состояниями выбора. –
двигаться, как вы предлагаете :) – Nick