【问题标题】:UIViews, subviews and alphaUIViews、子视图和 alpha
【发布时间】:2012-01-10 21:08:27
【问题描述】:

我在一个超级视图中拥有三个相互叠加的视图。

superview
 - subview 1 (CD Case)
 - subview 2 (Artwork)
 - subview 3 (Shine)

当我为父视图的 alpha 属性设置动画时,它会接缝以影响所有子视图的 alpha,即,当动画运行子视图 1 时,CD 盒会透过艺术品。

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

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

【问题讨论】:

  • 其中一个选项是在顶部放置一个黑色(或其他颜色)的封面,并使用零 alpha。然后淡入。
  • 工作得非常好。谢谢。

标签: iphone animation uiview uikit uiimageview


【解决方案1】:

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

myView.layer.shouldRasterize = YES

这将使它使用“组不透明度”,并且所有内容都应该按照您的预期进行组合。第一种方法可能性能更高,但并不“正确”。

【讨论】:

  • 实际上使用光栅化时滚动性能稍好一些。您还需要设置myView.layer.rasterizationScale = [[UIScreen mainScreen] scale]; 以避免视网膜显示器上的图像模糊。
  • 您的回答为我省去了很多麻烦。实现组不透明度的非常好的方法。
猜你喜欢
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多