我知道这个问题很愚蠢.但是突然间被这个问题困扰了.
当我使用dequeReusableCellWithIdentifier时,将重用这些单元格.更具体地说,首先’n’组的单元格被重用 – 以及它们的引用
由于重用了相同的引用,我实际上无法将局部变量存储到单元格中.我实际上需要每次在cellForRowAtIndexPath中分配它们
假设我正在使用自定义复杂的UITableviewcell. (我知道我们应该减少复杂性.但仍然……)
一些视图将添加到单元格中.
我能想到的最好的例子是图像滑块.
因此,图像滑块中的图像数量因数据源而异.所以我需要在cellForRowAtIndexPath中添加视图.无法避免它.
由于重用了相同的单元格引用,我需要在每次调用cellForRowAtIndexPath时添加这些视图.我认为这有点沉重负担.
我想过使用drawRect方法,但它不适用于UITableViewAutomaticDimension
如果我不使用dequeReusableCell,我会有单独引用的单元格,但它会耗费内存和性能.
那么什么是最好的解决方案?
我可以使用dequeReusableCell并且仍然不需要重写其内容吗?
编辑1:
通过提到dequeReusableCell,我确实提到了dequeueReusableCellWithIdentifier – forIndexPath.对不起,我很抱歉.
编辑2:
我觉得,我的问题不是那么清楚.
让我们考虑一下我的viewcontroller中有一个数组.
我正在使用dequeueReusableCellWithIdentifier – forIndexPath在cellForRowAtIndexPath中配置我的单元格
所以当我滚动时,当不可见的行变得可见时,会调用cellForRowAtIndexPath.
假设我有一个带有n个图像视图的图像滑块.对于每个单元格,这个’n’不同.所以我不得不根据其dataSource绘制单元格的视图.
因此,每次tableView调用cellForRowAtIndexPath时,都会一次又一次地配置单元格.
我想避免这种情况来提高性能.
最佳答案 在这种情况下我做的是以下内容:
>我总是使用dequeReusableCell:,原因你已经说过了
>我在自定义UITableViewCell类中编写了一个cleanCell方法,以便清理已在单元上设置的所有内容(只是为了使其可以重用)
>然后在cellForRowAtIndexPath中:我根据需要配置我的单元格