Перерисуйте UITableView после обновления асинхронных данных

У меня есть UITableview, который я загружаю данными, асинхронными, таким образом, tableview мог бы появиться без данных.
Я имею усталый метод ReloadData, но tableview остается пустым, пока я не прокручиваю tableview, внезапно данные появляются.
То же самое происходит, когда я загружаю tableview, поскольку detailedview и переключающийся между объектами, previoud данные объектов кажутся первыми и как только я прокручиваю в табличном представлении, это показывает корректные данные.
Мое предположение - то, что метод ReloadData работает просто великолепно, но я должен перерисовать tableview так или иначе, какие-либо предложения о том, как решить это?

/Jimmy

24
задан sergtk 5 May 2013 в 09:06
поделиться

2 ответа

Вы сказали, что заполняете содержимое асинхронно, но вызывали ли вы reloadData в контексте основного потока? (а не через поток, который заполняет содержимое)

Objective-C

[yourUITableView performSelectorOnMainThread:@selector(reloadData)
                                  withObject:nil 
                               waitUntilDone:NO];

Swift

dispatch_async(dispatch_get_main_queue(), { self.tableView.reloadData() })

Monotouch

InvokeOnMainThread(() => this.TableView.ReloadData());
54
ответ дан 28 November 2019 в 22:41
поделиться

Я думаю, он не перезагружался.

Когда вы прокручиваете ячейки за пределы экрана, будет вызываться…

tableView: cellForRowAtIndexPath:

…. Так что он будет перезагружен.

Думаю, переменная UITableView не проверена.

Если вы используете UITableView в качестве основного представления, вы можете попробовать это.

[self.view reloadData];

или

[ self.tableView reloadData];

2
ответ дан 28 November 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: