современный C++ является одним из лучших введений, которые я считал. Это покрывает фактические полезные примеры шаблонного метапрограммирования. Также смотрите на сопутствующую библиотеку Loki.
Похоже, что это происходит из-за того, что внутренний код Apple UITableView
предполагает, что когда вы удаляете строку, первая часть вашего представления станет короче . Из-за того, что нижний колонтитул верхнего колонтитула раздела внезапно становится выше, чтобы компенсировать последнюю строку, вы, кажется, сбиваете его с толку.
Две идеи для вас:
1. попробуйте сделать нижний колонтитул необязательного раздела на пиксель или два меньше, чем ячейка таблицы, исчезает, так что код анимации выполняет один или два пикселя анимации
2. вместо удаления единственной строки таблицы, когда нет «настоящих» строк данных, пусть таблица по-прежнему имеет numberOfRowsInSection
возврат 1 и делает поддельную ячейку «без данных» вместо использования нижнего колонтитула таблицы для Случай «нет данных».
Это один из тех случаев, когда вам просто нужно признать, что Apple написала за вас половину вашей программы, и вы должны соответствовать некоторым решениям, сделанным вашим соавтором, нравятся ли они вам или нет.