У меня есть многосекционный UITableView с настраиваемыми представлениями заголовков, которым нужно знать их индекс раздела. В настоящее время я записываю номер раздела в поле тега UIView при создании пользовательского представления в viewForHeaderInSection. Однако при удалении строки UITableView не перезагружает представления заголовка раздела для представлений заголовка, видимых на экране, поэтому их поля тегов становятся не синхронизированными. Вызов reloadData для таблицы повторно синхронизирует поля тегов путем воссоздания представлений заголовка, но вызов reloadData мешает анимации удаления строк. Установка таймера для вызова reloadData после «короткого» периода времени кажется хакерской и несколько рискованной, если пользователь заканчивает тем, что взаимодействует с несинхронизированным заголовком до срабатывания таймера (я полагаю, я мог бы добавить переменную состояния, чтобы предотвратить это тьфу)
Я мог бы предположить, что отслеживаю все представления заголовков, созданные в контейнере, и корректирую их теги, когда строки удаляются (тьфу снова). Но тогда как мне избежать утечек в представлениях? Как я узнаю, когда UITableView выпустил представление, чтобы я мог удалить свою ссылку на них, чтобы они могли быть освобождены?
Кажется, это намного больше работы, чем должно быть .... я что-то упустил? Я заметил, что у других есть очень похожие проблемы и никогда не видел окончательного подхода к их решению.