代码之家  ›  专栏  ›  技术社区  ›  David Liu

Calayer性能与uiImageView性能

  •  6
  • David Liu  · 技术社区  · 15 年前

    我注意到我在应用程序中处理图像的一些事情,我可以改为使用Calayer属性(即边界、阴影、渐变等)。所以,我想知道,一般来说,使用炉排之类的东西是一个更好的主意,还是在photoshop中做所有的事情,用uiimage(view)做我需要的东西?滚动性能在阴影和其他东西上有点慢,所以我基本上是在尝试找到我能找到的每一个小的优化。

    背景信息:我基本上只是垂直滚动浏览一堆图片。有点像照片应用程序。这一切都是从3.2开始的,所以我可以接触到像阴影和应该在加莱尔的立体属性。

    1 回复  |  直到 11 年前
        1
  •  15
  •   Noah Witherspoon    15 年前

    了解Calayer阴影的一个关键点是,默认情况下,它们是从层的合成alpha通道渲染的;这可能非常慢,特别是在层旋转或更改大小时。你应该调查一下 shadowPath 属性:如果为核心动画提供一个简单形状,例如矩形( UIBezierPath +bezierPathWithRect: 与层的 bounds 会给你 CGPath 属性A CGPathRef 你可以在那里使用),你会看到更好的性能。

    shouldRasterize 也非常有用,尤其是对于具有许多子视图且不经常更改的视图;但是,请确保您设置了层的 rasterizationScale [UIScreen mainScreen].scale 或者你会在iPhone4等高分辨率屏幕上看到一些讨厌的像素。