由于自定义单元格创建,UITableview在滚动时变得不稳定?

Mru*_*nal 3 iphone scroll uitableview custom-cell ios

我在我的uitableview中使用了自定义单元类,并在cellForRowAtIndexPath方法中使用.

在该方法中,已经定义了cellIdentifier,甚至将cell属性用作dequeueReusable.

但是每次创建自定义单元格对象并调用其方法时,都会滚动我的tableview.因为在设备上,滚动会产生不稳定的效果.

我还检查了if(cell == nil)和我为该自定义单元格分配我的图像和标签属性.但是每一次,这个条件都成立,程序指针进入那个条件.

请指导我这个.

如果可能,请提供一些示例代码.

提前致谢

Mrunal.

Shi*_*mar 15

我很复杂UITableViewCell.对我来说,诀窍是shouldRasterize将细胞层设置为YES.但它引入了模糊的文字.为了避免这种情况,我设定了比例 - [self.layer setRasterizationScale:[[UIScreen mainScreen] scale]].


Mag*_*ave 13

正如许多其他人所指出的那样,除非您发布代码(我们的CellForRowAtIndexPath应该足够),否则我们无法真正帮助您.

一般来说,有很多方法可以提高UITableViews上的滚动性能,以及我使用的顶级滚动性能(并且已经在其他Stack Overflow答案中使用):

  1. 始终重复使用细胞,在创建新细胞时使用dequeuereusablecellwithidentifier.这可以防止操作系统在快速滚动时创建和销毁大量对象的开销.

  2. 折叠单元格的视图层次结构.创建自定义视图并在drawRect中完成所有单元格绘制,而不是拥有大量视图和子视图.像Twitter这样的应用程序使用这种方法进行超快速细胞绘制

  3. 确保您的图像不透明.您可以通过确保所有图像资源都没有烘焙到其中的Alpha通道并将图层的opaque属性设置为YES来执行此操作.

  4. 如果要设置单元格图像的图层属性的任何属性(如阴影或圆角矩形),则会影响滚动性能.将图层的shouldRasterize设置为YES会有所帮助,但您应该认真考虑在单元格内进行任何密集的绘图操作.

有关详细信息,请参阅http://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40007318-Intro-DontLinkElementID_2

  • 你的第四点就像火箭一样!Awsm...(y)但需要添加 - [self.layer setRasterizationScale:[[UIScreen mainScreen] scale]].之后. (2认同)