什么时候是tableView:numberOfRowsInSection:在UITableView中调用?

时间:2013-06-04 09:17:15

标签: ios objective-c uitableview

tableView:numberOfRowsInSection被发送到UITableView的委托,以找出它在给定部分中需要有多少行。

我的问题是,此方法的调用时间和频率是多少?

5 个答案:

答案 0 :(得分:6)

在第一次加载tableview时调用该方法,如果你对委托更感兴趣,那么放一个断点并检查调用哪个委托的时间和地点以及多少次。

答案 1 :(得分:5)

以下是调用该函数的实例,

  1. 第一次加载表时
  2. 重新加载表格数据的时间
  3. 动态添加/更新/删除行的时间。

答案 2 :(得分:3)

方法- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section UITableViewDataSource - protocol 的协议方法。它会被调用 第一次加载表视图时,基于您已正确设置dataSource,例如

self.yourTableView.dataSource = self;

如果您有兴趣稍后再次更新表格,可以致电

[self.yourTableView reloadData];

为了重新加载整个表。如果您只对重新加载表的一部分感兴趣,可以执行与

类似的操作
NSIndexSet *reloadSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, [self numberOfSectionsInTableView:self.yourTableView])];
[self.yourTableView reloadSections:reloadSet withRowAnimation:UITableViewRowAnimationAutomatic];

希望它有所帮助!

答案 3 :(得分:3)

  

我的问题是,此方法的调用时间和频率是多少?

简答:当您的UITableView需要更新内容时。

长答案:代表方法通常会调用自己,但是当UITableView需要更新某些内容时,可能会多次调用它们。默认情况下,第一次调用tableview时会调用它(重新加载)。

答案 4 :(得分:2)

这取决于用户将UITable视图滚动到部分的频率以及有多少部分。此值,由此函数返回并进行转换。如果您要更新表格视图的内容(过滤结果或通过 reloadData 更新数据),则需要撤销方法。

最好的办法是将记录添加到此功能并自行检查。