У меня есть UITableViewCell
с динамической высотой на основе текстового содержимого. В tableview:heightForRowAtIndexPath:
высота вычисляется. Это хорошо работает.Настроить высоту UITableViewCell при удалении салфетки
Когда ячейка переходит в режим редактирования с помощью редактированияStyle UITableViewCellEditingStyleDelete
, она несколько раз откладывает ячейку и может вытолкнуть содержимое, вызывающее изменение rowHeight. Опять же, это хорошо работает, так как переключение табличного вида на редактирование приводит к тому, что таблица ретранслируется, и поэтому rowHeight получает пересчет.
Когда вы нажимаете красную кнопку или проведите по ней, в правой части ячейки появится кнопка «Удалить». Это, однако, НЕ запускает ретрансляцию таблицы, а только сама ячейка. Проблема здесь в том, что если содержимое переходит в нижний край, ячейка не изменяется.
Есть ли способ вызвать повторную компоновку таблицы при появлении кнопки удаления?
[will/didBeginEditingRowAtIndexPath] запускаются только на слайде, а не при нажатии красной кнопки. Я обнаружил, что willTransitionToState можно использовать для обнаружения изменения. К сожалению, [reloadData] вызывает бесконечные циклы, вызванные внутри этих методов. Наверное, я могу поставить его на таймер, но это так неправильно. – batkuip