[英]ios - tableView:numberOfRowsInSection …NSInvalidArgumentException when working with UITableView
[英]When is tableView:numberOfRowsInSection: called in UITableView?
tableView:numberOfRowsInSection
被发送到UITableView的委托,以找出它在给定部分中需要有多少行。
我的问题是,这个方法的调用时间和频率是多少?
在第一次加载tableview时调用该方法,如果您对委托更感兴趣,则放置一个断点并检查调用哪个委托的时间和位置以及多少次。
下面是调用该函数的实例,
方法- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
是UITableViewDataSource - 协议的协议方法。 它将在您第一次加载表视图时调用,具体取决于您已正确设置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更新数据),则需要撤销方法。
最好的办法是将记录添加到此功能并自行检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.