Метод источника данных UITableView не вызывает в устройстве 3G iOS4.0 - PullRequest
1 голос
/ 04 июля 2011

Когда я называю этот код

[[self tableView]reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:kSectionShoppingList]] withRowAnimation:UITableViewRowAnimationNone];

Вызовы HeightForRowAtIndexPath Но в CellForRowAtIndexPath для раздела 3 строка 0 не вызывает.

Ищем ваше предложение.

и это специфично для устройства 3g iOS4.0.1.

Кто-нибудь ранее сталкивался с такой же проблемой.

Ответы [ 3 ]

0 голосов
/ 16 мая 2012

Проблема, о которой я упоминал, выглядит как ошибка в iOs4.0.1.В любом случае, я решил эту проблему путем перезагрузки всей таблицы с использованием метода reloadData вместо перезагрузки отдельных строк.

0 голосов
/ 22 мая 2012

Убедитесь, что вы перезагружаете разделы и строки, которые видны и соответствуют правильным индексам в вашем табличном представлении.Также убедитесь, что ваш делегат tableView и источник данных установлены правильно.

метод reloadData как следующий комментарий:

- (void)reloadData; // reloads everything from scratch. redisplays visible rows. because we only keep info about visible rows, this is cheap. will adjust offset if table shrinks

у вас также могут возникнуть проблемы с перезагрузкой отдельных строк, если ваша таблица мутирует, тогда вы должны использовать методы beginUpdate / endUpdate

- (void)beginUpdates;   // allow multiple insert/delete of rows and sections to be animated simultaneously. Nestable
- (void)endUpdates;     // only call insert/delete/reload calls or change the editing state inside an update block.  otherwise things like row count, etc. may be invalid.
0 голосов
/ 16 мая 2012

Видна ли перезагружаемая ячейка?

Не уверен насчет iOS4.0.1, не установлен для тестирования, но на iOS5 + cellForRowAtIndexPath не вызывается, если ячейка не видна, простопопробовал это в одном из моих приложений.

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