UIView alpha vs. UIColor alpha

我只是一个虾纸丫 提交于 2019-12-03 11:14:42

The difference is:

  • By settings background color with alpha <1, only the background color will have the alpha and all subviews will by default have alpha 1, i.e. will be 100% opaque
  • By settings alpha to the view, the whole view (including all the subviews) will be drawn with the given alpha

So in your examples:

  • _view1 (alpha <1 on view): alpha is also applied to the subview UILabel
  • _view2 (alpha <1 on background color): subview UILabel is nicely opaque
  • _view3 (defualt alpha 1 on both): well, we all see :-) background color and label are both opaque

Example usage of both:

Left image: You have a semi-transparent black overlay which has a subview UIImageView containing a white checkmark icon and you usually want the icon to be fully opaque (non-transparent). So you set just the background color black with alpha <1 (0.75f in the example).

In opposing to:

Right image: You have have a semi-transparent black overlay which has a subview UIImageView containing a white pattern image (the pattern is opaque white, no alpha). And you want the pattern in overlay to be also semi-transparent. You then would set background color to black with alpha 1 (opaque) and alpha <1 to the whole view.

As you can see, icon on left image is fully opaque, but on a right, you can see also through a stars pattern.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!