UIViews,subviews和alpha

voi*_*ern 3 iphone animation uikit uiview uiimageview

我在superview中有三个视图.

superview
 - subview 1 (CD Case)
 - subview 2 (Artwork)
 - subview 3 (Shine)
Run Code Online (Sandbox Code Playgroud)

当我为超视图的alpha属性设置动画时,它接缝会影响所有子视图的alpha值,即当动画运行子视图1时,CD Case会照亮图片.

虽然将所有三个混合到一个UIImage中解决了这个问题,但出于性能原因,这不是一个真正的选择.(视图显示在网格视图中并按需加载.)

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

Jos*_*erg 19

你可以按照@ debleek63的建议逆转淡入淡出.或者您可以更改shouldRasterize超级视图图层上的标记.

myView.layer.shouldRasterize = YES

这将使它使用"组不透明度",所有内容都应该按照您的预期进行组合.第一种方式可能更高效,但不是"正确".

  • 实际上,使用光栅化时滚动性能稍好一些.您还需要设置`myView.layer.rasterizationScale = [[UIScreen mainScreen] scale];`以避免视网膜显示屏上出现模糊图像. (6认同)