我的应用程序的背景是不透明的UIImageView
。在某些情况下,我想以一种动画的方式将其从全亮度变暗到约50%。目前我降低了视图的alpha属性,这很有效。因为视图后面没有任何东西,背景图像就会变暗。
然而,我一直在使用核心动画工具进行剖析,当我这样做时,我看到整个背景显示为混合。如果可能的话,我想避免这种情况。
在我看来,这在合成期间是可以实现的。如果视图是不透明的,则可以将黑色混合而不显示任何东西。没有必要混合它,只需调整像素值。
我想知道这是否是UIKit的GPU合成支持的东西。虽然混合不是很好,但它可能比更新CPU上的图像要好得多,所以我认为CPU方法可能不是一个好的替代品。
Another question询问此问题,并提出了一些建议,包括设置Alpha。没有人提出避免混合的机制。
答案 0 :(得分:2)
这里的一个重要问题是,您是否希望更改使用黑暗的背景进行动画处理。
准备两个不同的背景图像,然后在它们之间进行交换。 UIImage+imageEffects
库有助于生成暗色图像,或者为您提供一些线索。
查看GPUImage - “基于GPU的图像和视频处理的开源iOS框架”。基于此,您可以以黑暗的方式将背景渲染到场景中。