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

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

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

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

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

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

方法- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionUITableViewDataSource – 协议的协议方法。 它将在您第一次加载表视图时调用,具体取决于您已正确设置dataSource ,例如

 self.yourTableView.dataSource = self; 

如果您有兴趣稍后再次更新您的桌子,可以致电

 [self.yourTableView reloadData]; 

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

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

希望能帮助到你!

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

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

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

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

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