我是iOS开发的新手,并为IOS研究蓝牙低功耗(BLE,蓝牙4.0)。
我尝试将10个数据添加到tableView
。
从日志中,它会为 10 time
运行 cellForRowAtIndexPath
。
The question is :
Objective-c如何知道必须为 10 time
运行 cellForRowAtIndexPath
?
是否符合numberOfRowsInSection
?
答案 0 :(得分:6)
cellForRowAtIndexPath
。
不要指望它被称为特定时间,也不期望任何特定的序列。
实施例:
有一个部分只有15行。因此,从用户的角度来看,该表总共有15个单元格。 numberOfRowsInSection
将返回15.
假设其中10个在iPhone 5上可见,其中9个在iPhone 4上可见。
开始cellForRowAtIndexPath
在iPhone 4上被调用9次,在iPhone 5上被调用10次。
让我们继续使用iPhone 5.用户现在滚动到桌面的底部。再看到5个细胞。然后cellForRowAtIndexPath
被调用5次。
早期消失的BTW中的4个细胞可以并且将被重复使用。 (假设所有单元格都是相同的类型和重用标识符)
到目前为止,每个单元格都调用了一次cellForRowAtIndexPath
。
现在用户再次向上滚动到表格的顶部。现在再次为第4,3,2,1和0行的单元格调用cellForRowAtIndexPath
。
到目前为止,cellForRowAtIndexPath
被称为15个细胞20次。
现在是用户......
答案 1 :(得分:0)
cellForRowAtIndexPath 。
为了清楚地理解,在cellForRowAtIndexPath方法中放置一个断点然后运行,你就会知道它是如何调用的。