2013-02-22 2 views
0

У меня есть подкласс UITableViewCell с метками, представлениями индикатора и т. Д. Мне нужно, чтобы он обновлялся по мере того, как данные извлекаются из Интернета (в частности, у меня есть метка для количества результатов).XCode: Reload UITableViewCell

Я использовал это, чтобы попытаться перезагрузить ячейки, но это не сработает. Я знаю, что вызываются cellForRowAtIndexPath и значение, которое сам источник данных обновляется.

[self.myFriendsTbl beginUpdates]; 
[self.myFriendsTbl reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
[self.myFriendsTbl] endUpdates]; 

ответ

2
[self.myFriendsTbl reloadData]; 

Это заставит каждый видимый UITableViewCell будет перезагружен. cellForRowAtIndexPath будет вызываться для каждого из них.

0

Вам не нужно вызывать beginUpdates или endUpdates, так как вы не удаляете и не вставляете ячейки.

Просто измените данные для конкретной строки в DataSource и вызвать

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft]; 

, как вы делали.

Если это не работает, возможно, вы не меняете правильную строку или указатель indexPath не является правильным. Покажите еще один код, чтобы проверить это. Например, используя некоторую анимацию, например «UITableViewRowAnimationLeft», вы сможете увидеть, какая ячейка изменяется.

+0

Спасибо за ваш ответ. Я должен упомянуть, что он меняет часть времени, но не все время, что меня пугает. Поэтому путь указателя правильный (и я отлаживался, чтобы проверить .. просто ввел NSLog для текста ячейки в cellForRowAtIndexPath). Возможно ли, что я просто слишком часто меняю его и конфликтую? Мои методы «веб-приемника» асинхронны, поэтому они могут вызвать перезагрузку примерно в одно и то же время? Есть ли это вокруг (если вы считаете, что проблема)? – JoshDG

+0

Возможно, вы пытаетесь обновить ячейку до того, как DataSource действительно изменился? Вставьте еще несколько NSLogs, чтобы их найти. – Odrakir

+0

Я сделал, источник данных изменился. Прямо над строкой, где я говорю [tableView lblTotalPhotos] setText: newNumber] I NSLogged newNumber. Я смущен :( – JoshDG

Смежные вопросы