我注意到,我在应用程序中对图像所做的一些事情,可以改为使用CALayer属性(即边框、阴影、渐变等)。所以我想知道,一般来说,使用CALayers之类的是更好的主意,还是在photoshop中做所有的事情,然后使用UIImage(视图)来做我需要的事情?滚动性能对于阴影之类的东西来说有点慢,所以我基本上是在努力寻找我能找到的每一个小优化。
背景信息:我基本上只是在垂直滚动浏览一堆图像。有点像照片应用。这都是从3.2开始的,所以我可以访问CALayer中的阴影和shouldRasterize属性。
发布于 2010-07-03 06:23:27
有关CALayer阴影的一个关键问题是,默认情况下,它们是从层的合成alpha通道渲染的;这可能会非常慢,特别是当层旋转或改变大小时。你应该看看shadowPath属性:如果你给核心动画一个简单的形状,比如一个矩形(带有层的bounds的UIBezierPath +bezierPathWithRect:将通过它的CGPath属性给你一个可以在那里使用的CGPathRef ),你会看到更好的性能。
shouldRasterize当然也很有用,特别是对于有许多不经常改变的子视图的视图;不过,请确保将图层的rasterizationScale设置为[UIScreen mainScreen].scale,否则在像iPhone 4这样的高分辨率屏幕上会出现一些令人讨厌的像素。
https://stackoverflow.com/questions/3169368
复制相似问题