我有一个UIScrollView和许多带有UIImageView的对象(UIView构成)。其中一些UIImageView具有圆形边框(我使用
问题是我发现剪切属性会在滚动时严重影响性能:
对于iPod touch(第四代)的性能分析结果: - 当启用剪辑属性(两者之一或全部)时,滚动时大约有30fps。 - 当禁用剪辑属性时,滚动时有全部60fps。
我真的需要将某些图像裁剪为圆形边界,并将其他图像裁剪为矩形边界(以显示图像的一部分)。那么,我的问题是:有什么方法可以提高性能吗?也许可以使用低级别的方法(例如
myImageView.layer.masksToBounds = YES;
实现),而其他一些具有矩形边框和部分图像(我在Interface Builder中使用“Clip subviews”属性)。问题是我发现剪切属性会在滚动时严重影响性能:
对于iPod touch(第四代)的性能分析结果: - 当启用剪辑属性(两者之一或全部)时,滚动时大约有30fps。 - 当禁用剪辑属性时,滚动时有全部60fps。
我真的需要将某些图像裁剪为圆形边界,并将其他图像裁剪为矩形边界(以显示图像的一部分)。那么,我的问题是:有什么方法可以提高性能吗?也许可以使用低级别的方法(例如
drawRect:
或其他方式),或者尝试调整透明度遮罩,又或者我做错了什么?
view.layer.rasterizationScale = [[UIScreen mainScreen] scale]
设置。这样应该能让所有东西都清晰起来。我已经更新了我的答案。 - Mike Weller