У меня есть UITableview, который я загружаю данными, асинхронными, таким образом, tableview мог бы появиться без данных.
Я имею усталый метод ReloadData, но tableview остается пустым, пока я не прокручиваю tableview, внезапно данные появляются.
То же самое происходит, когда я загружаю tableview, поскольку detailedview и переключающийся между объектами, previoud данные объектов кажутся первыми и как только я прокручиваю в табличном представлении, это показывает корректные данные.
Мое предположение - то, что метод ReloadData работает просто великолепно, но я должен перерисовать tableview так или иначе, какие-либо предложения о том, как решить это?
/Jimmy
Вы сказали, что заполняете содержимое асинхронно, но вызывали ли вы 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());
Я думаю, он не перезагружался.
Когда вы прокручиваете ячейки за пределы экрана, будет вызываться…
tableView: cellForRowAtIndexPath:
…. Так что он будет перезагружен.
Думаю, переменная UITableView не проверена.
Если вы используете UITableView в качестве основного представления, вы можете попробовать это.
[self.view reloadData];
или
[ self.tableView reloadData];