是 - [UITableView reloadData]异步还是同步?

the*_*end 15 cocoa-touch uitableview ios

当您调用-reloadData表视图实例时,它是否会使所有UITableViewDataSource调用异步?谢谢.

Sul*_*han 17

此方法实际上只是UITableViewCell从表中删除所有视图.重绘表时会调用数据源委托方法.

所以,它是异步的.

编辑:

实际上,有些呼叫是同步的.段数和行数以及行高度会立即更新,因此,例如contentSize在调用后正确设置.另一方面,tableView:cellForRowAtIndex:在重新绘制表格之前不会调用.

  • 如果在所有`cellForRow ...'调用之前再次调用reloadData并且新的单元数<旧单元数,则会崩溃.`cellForRow`要求索引太高 (4认同)