Пользовательский UITableViewCell не обновляет свои подпредставления сразу, почему? - PullRequest
2 голосов
/ 18 июня 2010

У меня есть пользовательский UITableViewCell с, среди прочего, меткой и imageView. Если табличное представление является видимым представлением и в нем есть ячейка, если я программно обновляю текст метки, а также изображение и изображение imageView, когда делаю это, это занимает около 4 секунд ПОСЛЕ того, как я вижу уведомление в журналах для метки и изображение для обновления. Вот порядок того, что происходит и как:

-Загрузить представление, содержащее таблицу и одну пользовательскую ячейку

-Запишите файл на диск, используя NSOperation (и очередь)

-Когда операция NSO завершает запись файла, он запускает NSNotification (defaultCenter), который сообщает виду ячейки для обновления метки и изображения И я устанавливаю [self setNeedsDisplay]

- Здесь я вижу в своих журналах, что ячейка получила уведомление И закончила установку новых значений

- ~ 4 секунды спустя вид ячейки фактически обновляется.

Что дает?

Ответы [ 2 ]

4 голосов
/ 18 июня 2010

Решение моей конкретной проблемы зависит от того, как я обновляю данные, я использую NSOperation (и очередь) для отправки уведомления, а ответчик уведомлений обновляет представление.Проблема в том, что NSOperation технически живет в другом потоке, поэтому я должен был сделать следующее:

-Запишите файл на диск, используя NSOperation (и очередь)

-Когда операция NSO закончит записьфайл, в котором он запускает NSNotification (defaultCenter), тогда ответчик должен выполнитьSelectorOnMainThread - метод, который выполняет фактическое обновление представления

. Сделал ли это и мои ячейки сразу же обновились.

0 голосов
/ 18 июня 2010

Вы должны вызвать reloadRowsAtIndexPaths: withAnimation: , чтобы обновить конкретную ячейку в табличном представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...