Я занимаюсь разработкой приложения для iOS, и у меня возникли некоторые проблемы, связанные с решением проблемы.
Я использую два контроллера UITableViewController для отображения разных представлений одних и тех же данных.Один из них является главным списком, а другой содержит только элементы, помеченные как «избранные».Также элементы имеют переменную высоту, поэтому я использую «heightForRowAtIndexPath», чтобы указать высоту для каждого элемента.Проблема заключается в скорости, когда я переключаюсь с одного представления на другое, его необходимо обновить, чтобы отобразить изменения, сделанные в другом (отмечены как избранные / небезопасные).
Решение № 1 :
Перезагрузить данные каждый раз, когда табличное представление становится видимым.Это не очень хорошо работает, потому что, хотя данные отображаются с использованием отложенной загрузки, "heightForRowAtIndexPath" вызывается для каждого элемента перед загрузкой ЛЮБЫХ данных, и это происходит медленно.На моем iPhone 4 для загрузки списка из 300 элементов требуется около четырех секунд, даже если значения высоты кэшируются (узкое место применяет высоту, а не извлекает ее).
Решение # 2 :
Вручную манипулировать таблицами при внесении изменений.Я не пробовал это, но это, вероятно, будет глючить.Ваши мысли?
Решение # 3 :
Использование системы типов уведомлений для уведомления другой таблицы об обновленияхэлементы, которые могут быть загружены в данный момент.Я не пробовал этого, потому что он кажется чрезмерным и может вообще не работать.
Кто-нибудь знает простой способ показать два представления одних и тех же данных?