![](/img/trans.png)
[英]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.