【问题标题】:Gradient backgrounds渐变背景
【发布时间】:2010-07-20 14:49:57
【问题描述】:

什么时候推荐使用 iphone 自己创建的渐变,什么时候图片是更好的选择?

【问题讨论】:

    标签: iphone drawing


    【解决方案1】:

    This question 提出了类似的问题。与大多数与性能相关的问题一样,您最好使用 Instruments 和其他工具来确定这是否是一个值得花时间优化的领域。

    正如我在my answer 中所说的,我注意到在启动期间花费了大量时间在 iPhone 3G 上在背景中绘制径向渐变的 Quartz 函数中。通过切换到图像,我能够显着减少应用程序的启动时间。但是,需要为每个较大的显示尺寸生成新图像,因此对于较新的设备(iPad、iPhone 4),我再次使用 Quartz 径向渐变,因为这些系统上的渲染时间可以忽略不计。

    对于线性渐变,根据我的经验,CAGradientLayer 可以为您提供良好的性能和对新分辨率的可扩展性,但同样您需要在您的特定应用程序中对此进行测试。

    【讨论】:

    • 非常感谢!但是使用渐变层不会减少内存使用吗?
    • @egil - 不应该有太大的内存差异,因为相同大小的视图或层将使用相同数量的内存来存储它们的内容。奇怪的是,我注意到在加载静态图像与绘制 Quartz 径向渐变时,内存监视器中的内存占用量略有减少。正如我所说,测试你所做的任何性能假设。
    【解决方案2】:

    这是一个非常模糊的问题,您是否在考虑任何特定情况?除非您正在进行非常密集的处理或大量图形(游戏),否则处理时间的差异可能不会很明显。我没有测量它,但我敢打赌开销的差异非常小,所以在你发现问题之前,你认为更容易/更好看。

    【讨论】: