Iphone UIView、子视图和alpha

Iphone UIView、子视图和alpha,iphone,animation,uiview,uikit,uiimageview,Iphone,Animation,Uiview,Uikit,Uiimageview,在superview中,我有三个视图彼此重叠 superview - subview 1 (CD Case) - subview 2 (Artwork) - subview 3 (Shine) 当我为superview的alpha属性设置动画时,它会影响所有子视图的alpha,即当动画运行子视图1时,CD盒会在艺术品中发光 虽然将这三种图像混合到一个UIImage中可以解决这个问题,但出于性能原因,这并不是一个真正的选项。(视图显示在栅格视图中,并根据需要加载。) 有没有其他方法可以避免

在superview中,我有三个视图彼此重叠

superview
 - subview 1 (CD Case)
 - subview 2 (Artwork)
 - subview 3 (Shine)
当我为superview的alpha属性设置动画时,它会影响所有子视图的alpha,即当动画运行子视图1时,CD盒会在艺术品中发光

虽然将这三种图像混合到一个UIImage中可以解决这个问题,但出于性能原因,这并不是一个真正的选项。(视图显示在栅格视图中,并根据需要加载。)


有没有其他方法可以避免这种行为?

您可以按照@debleek63的建议,反转淡入度。或者您可以更改SuperView图层上的
shouldRasterize
标志

myView.layer.shouldRasterize=是


这将使它使用“组不透明度”,所有内容都应该如您所期望的那样合成。第一种方法可能更有效,但不是“正确的”。

其中一种方法是在顶部放置一个黑色(或其他颜色)的盖子,其alpha为零。然后淡入,效果很好。谢谢。实际上,使用光栅化时,滚动性能稍微好一点。您还需要设置
myView.layer.rasterizationScale=[[UIScreen mainScreen]scale]以避免视网膜显示器上的模糊图像。您的回答为我省去了很多麻烦。实现组不透明度的非常好的方法。