iPhone 的 imageView 图层蒙版导致滚动缓慢

3

我有一个UITableView,其中大约有30个单元格,每次可以查看5个。

每个单元格中都有2个UILabels和1个UIImageView

我使用CALayer来呈现带圆角边框的图像视图。

    myImageView.layer.masksToBounds = YES;
    myImageView.layer.cornerRadius = 2.5;
    myImageView.layer.borderWidth = 1.0;
    myImageView.layer.borderColor = [[UIColor lightGrayColor] CGColor];

特别是masksToBounds这一行代码会导致设备上的滚动速度极慢。

我无法理解如何子类化单元格并自己绘制,(我尝试了想要有两行字符串的NSStrings后失败了)。

不管怎样,有没有一种使用CALayers的masksToBounds而不会影响性能的方法呢?


有可能有所帮助的是检查一下减速是否是由图层动画引起的。我不知道如何在你的情况下进行检查,但我曾经遇到过类似的情况。一旦我禁用了动画,它就可以正常工作了。 - MrHen
你能详细说明你的意思吗?我该如何禁用动画?那段代码是我应用程序中唯一的CALayer代码。 - scud
将layer.speed更改为像20这样荒谬地高。它会加速吗?不幸的是,我仍在学习如何禁用动画,所以无法在这方面帮助您。设置速度将有助于确定动画是否导致减速,但这不是一个好的永久解决方案。 - MrHen
1个回答

0

在2008年12月12日,Tweetie iPhone应用程序的制造商发布了一个很好的例子,展示了他如何实现UITableView滚动而不会出现通常伴随的颤抖和不平滑。

请参阅此帖子:

使用UITableView在Tweetie中进行快速滚动


1
该链接已不再可用。该帖子的存档版本可以在http://web.archive.org/web/20100322222950/http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/找到。 - Greg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接