gpt4 book ai didi

ios - 静态渐变图像与 CAGradientLayer?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:06 25 4
gpt4 key购买 nike

我需要在应用程序中显示一些渐变背景,目前我有两种选择,一种是使用静态渐变图像,另一种是使用CAGradientLayer,我'我很难在它们之间做出选择。

我只需要在渐变中有三个色标,顶部、中间和底部,所以这两种方式都很简单,我主要关心的是渲染速度,具体到 [UIImage imageNamed:@"gradient-image.png"] 对比 CGGradientLayer。静态图像可以保留在内存中,因此它只加载一次,但是对于不同的屏幕,要么缩放单个图像,要么我必须有不同大小的图像,这会增加应用程序的整体大小。

我不知道是否有关于每种优缺点的文章或结论,通常应该首选哪一种?

谢谢!

最佳答案

如果必须缩小图像,则会造成大量内存浪费。如果图像的大小正好适合屏幕尺寸和屏幕分辨率,则图像和渐变层之间的运行应用程序没有内存差异,因为渐变层具有相同的后备存储正确大小的图像的大小。但鉴于可能的分辨率和屏幕尺寸数量巨大,这是一个非常高的要求,当然它会大大增加应用本身的尺寸。

出于这些原因,我认为渐变层更受青睐。向设备提供绘图的说明比提供绘图的实际要好——除非,如您所说,存在渲染时间问题.

现在,我从未发现渐变层有任何“渲染速度”问题,我认为担心这是一种过早优化的情况。此外,从应用程序加载图像也需要时间。可能出现问题的地方是,如果您这样做是为了形成表格 View 的各个单元格的背景,例如,必须在用户滚动时实时构建每个单元格。但如果 Instruments 显示图像更好,那么在那种情况下,我会仍然将代码中的渐变绘制成完美尺寸和分辨率的图像,但随后我会将图像保留在内存并从中构建细胞。

关于ios - 静态渐变图像与 CAGradientLayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com