Ios 加载图像还是使用CGGradient更有效?

Ios 加载图像还是使用CGGradient更有效?,ios,performance,user-interface,gradient,Ios,Performance,User Interface,Gradient,我正在我的一个应用程序中尝试一些新UI的东西。我想知道,添加渐变背景等UI元素最有效的方法是什么(记住应用程序的大小以及速度/内存消耗) 我是否最好只是在Inkscape或Illustrator中创建元素,然后通过UIImage>UIIMageView加载它们?还是最好使用或 此外,我经常想知道这类事情,我想知道是否有人能解释我如何为自己测试这类事情(速度、内存消耗、总体性能)。CAGradientLayers非常好。我几乎总是喜欢使用CGGradient或使用CAGradientLayer绘制

我正在我的一个应用程序中尝试一些新UI的东西。我想知道,添加渐变背景等UI元素最有效的方法是什么(记住应用程序的大小以及速度/内存消耗)

我是否最好只是在Inkscape或Illustrator中创建元素,然后通过UIImage>UIIMageView加载它们?还是最好使用或


此外,我经常想知道这类事情,我想知道是否有人能解释我如何为自己测试这类事情(速度、内存消耗、总体性能)。

CAGradientLayers非常好。我几乎总是喜欢使用CGGradient或使用CAGradientLayer绘制渐变,而不是使用图像,特别是因为你不需要包括视网膜/非视网膜、iPhone/iPad组合,改变颜色就成了调整一行代码的问题,而不是在你的成像软件中重新生成整个系列的图像

如果您正在drawRect中进行其他绘制,请使用CGGradient进行绘制。如果只需要背景,请使用CAGradientLayer

您可以使用仪器分析性能(XCode中的产品-->配置文件)

  • 如果有滚动/动画,核心动画工具将提供每秒帧数
  • 时间分析器工具将向您显示哪些功能占用您的时间
  • 各种内存工具将显示内存消耗

谢谢你。有什么主意(不用我自己检查)哪一个对性能更好吗?这真的取决于你对视图做了什么。我会从最简单的实现(cagradientlayer,IMO)开始,如果性能不令人满意,我会去别处看看。如果您没有滚动或设置动画,则性能与此无关。