我正在制作一个没有任何数据源的 REALLY BASIC UITableView
项目。我只是在第一个也是唯一一个单元格上显示“1”。
我在 numberOfSectionsInTableView
和 numberOfRowsInSection
中都返回 1
。我还在这两种方法上做一个 NSLog
,简单地说明各自方法的名称。
在初始加载时,我得到这个:
SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section
SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section
SomeShit[27511:936083] number of sections
SomeShit[27511:936083] number of rows in section
为什么这些方法调用三次?如果我错了请纠正我,但这真的很奇怪。我认为他们应该只调用一次,因为两者中的项目数都只有 1。
编辑:
我在 viewDidLoad
中做了什么,
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
[self.view addSubview:self.tableView];
self.tableView.dataSource = self;
self.tableView.delegate = self;
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
最佳答案
委托(delegate)和数据源是为 TableView 实现服务的,方法可能会被多次调用。你不应该关心表格 View 的实现细节,只要确保你的答案是一致的(即你可以在任何时间点正确回答并且答案不会在不调用 reloadData
的情况下改变)。
关于ios - UITableView numberOfSectionsInTableView 和 numberOfRowsInSection 在初始加载时调用了三次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371414/