У меня есть UITableView со сложным контентом. Пользователь может редактировать (переставлять и удалять) ячейки при нажатии кнопки «Изменить» стандартным способом. Но я хочу, чтобы ячейки выглядели по-разному в режиме редактирования.
Вопрос:
Как изменить макет UITableView в режиме редактирования, включая изменение высоты строки?
Пока что вот что у меня есть:
Кнопка «Правка» отправляет сообщение WillTransitionToState / DidTransitionToState каждому uitableviewcell (UITVC). Я разбил UITVC на подклассы и реагировал на них внутри каждой камеры, при необходимости скрывая, удаляя и перетасовывая. Но изменение высоты строки выходит за рамки одной ячейки.
Похоже, что сообщение не отправляется в UITableView, когда пользователь нажимает кнопку редактирования. Существует - tableView: commitEditingStyle: forRowAtIndexPath: отправлено источнику данных после редактирования определенной строки.
Внутри heightForRowAtIndexPath я могу запрашивать текущий режим, используя свойство tableView.editing и, при необходимости, сообщать высоту И я могу запустить повторную передачу таблицы, включая пересчет высот, вызвав [tableView reloadData]. Но когда я это называю?
Я мог бы отправлять сообщения из ячеек из WillTransitionToState обратно в «собственное» табличное представление и вызывать reloadData, когда я их получаю. Но это звучит хрупко, и должен быть лучший способ.