Objective-C何时调用cellForRowAtIndexPath?

时间:2014-04-16 12:25:05

标签: ios objective-c

我是iOS开发的新手,并为IOS研究蓝牙低功耗(BLE,蓝牙4.0)。

我尝试将10个数据添加到tableView

从日志中,它会为 10 time 运行 cellForRowAtIndexPath

The question is :

Objective-c如何知道必须为 10 time 运行 cellForRowAtIndexPath

是否符合numberOfRowsInSection

2 个答案:

答案 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)

只要视图显示更改 tableView,就会调用

cellForRowAtIndexPath

为了清楚地理解,在cellForRowAtIndexPath方法中放置一个断点然后运行,你就会知道它是如何调用的。