2011-02-07 3 views
12

Возможно ли это? Чтобы перезагрузить только те ячейки, которые видны, чтобы сделать их более эффективными.reloadData только на tableView видимых ячеек

Спасибо за ваше время.

+0

Как о предоставлении какой-то контекст? Какой язык/структура/библиотека/что-нибудь? –

+0

О, извините. Я программирую на языке objetive-C (iOS SDK 4.0) – Samui

ответ

23

Вот как работают таблицы по умолчанию. Класс UITableView никогда не загружает ячейки, пока они не появятся на экране, даже когда вы вызываете reloadData.

+0

Спасибо, что вы правы. Я забыл эту деталь! – Samui

+0

jlehr @ вы можете предоставить любую ссылку –

8

Попробуйте это, Вы можете перезагрузить любой ячейку Tableview с помощью reloadRowsAtIndexPaths:

[self.tableView beginUpdates]; 
[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] 
       withRowAnimation:UITableViewRowAnimationNone]; 
[self.tableView endUpdates]; 
+0

я нашел только следующие места можно использовать 'reloadRowsAtIndexPaths': - (Недействительными) Tableview: (UITableView *) Tableview didSelectRowAtIndexPath: (NSIndexPath *) indexPath - (IBAction) unwindToMealList: (UIStoryboardSegue *) отправитель –

5

Чтобы обновить видимые ячейки Tableview в Swift 3.0:

pTableView.beginUpdates() 

pTableView.reloadRows(at: 
pMessagesTableView.indexPathsForVisibleRows!, with: .none) 

pTableView.endUpdates() 
Смежные вопросы