这不是一个真正的问题,因为我刚刚解决了这个问题,但我认为问题的本质对于许多iPhone开发人员来说很常见,解决方案并不是很明显,所以我想分享一下我的经验。为了与StackOverflow“问题/答案”格式保持一致,我将详细介绍问题和解决方案。
详细说明:
我有一个带有两个标签的单元格的桌面视图和一个从头开始放在一起的自定义切换开关控件。如果我隐藏了切换控件,则tableview会像冠军一样滚动。然而,在显示切换控制的情况下,iPhone 3G上的滚动非常不稳定/缓慢。我的tableview单元格没有透明组件(除了图层的掩码),我正在重复使用单元格。
自定义切换控件扩展UIButton,它的图层有两个组件 - 一个UIImageView,它包含切换的滑动“开关”部分和一个用作蒙版的细长椭圆,背景绘制在{{{ 1}}。
我是如何解决的?答案即将到来......
答案 0 :(得分:6)
我发现缓慢/不稳定的来源来自于在滚动时必须使用掩模子层重新组合Layer。我想每次重新绘制屏幕时都必须重新绘制切换开关。
我的解决方案是隐藏切换开关层/掩码,除非它正在改变状态。当它完全位于开启或关闭位置时,我隐藏了拨动开关层并用切换开关的图像替换它。当用户触摸切换时,虚拟图像隐藏,实际的切换开关组件显示并使动画处于相反状态。当动画结束时,我隐藏了切换开关组件并显示虚拟图像,确保将图像更改为当前状态。这种改进的滚动性能非常显着......我敢说它几乎和本机默认的tableview单元一样好。