我想知道以下之间的区别:
- 为我的 UIView 分配 alpha 值
- 为其指定不透明颜色,但为 UIView 指定
在屏幕截图上,我制作了两个 UIView,每个视图顶部都有两个黑色(alpha = 1.0)UILabels:
假设之前定义了一个宏_RGB:
#define _RGB(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
然后是代码::
[_view1 setBackgroundColor:_RGB(255, 0, 0, 1)];
[_view1 setAlpha:0.5];
[_view2 setBackgroundColor:_RGB(255, 0, 0, 0.5)];
[_view2 setAlpha:1];
[_view3 setBackgroundColor:_RGB(255, 0, 0, 1)];
[_view3 setAlpha:1];
我在视觉上只能看到一个区别:更改视图自己的 alpha 而不是背景颜色,也会影响子视图。但除此之外,我还应该考虑功能上的差异吗? (例如,关于动画、图层等)
区别在于:
- 通过将背景颜色设置为 alpha
- 通过为视图设置 alpha,整个视图(包括所有子视图)将使用给定的 alpha 进行绘制
所以在你的例子中:
-
_view1
(视图上的 alpha
-
_view2
(背景颜色的 alpha
-
_view3
(两者的默认 alpha 1):好吧,我们都看到了 :-) 背景颜色和标签都是不透明的
两者的用法示例:
左图:您有一个半透明的黑色覆盖层,其中有一个子视图UIImageView
包含白色复选标记图标,并且您通常希望该图标完全不透明(不透明)。因此,您只需将背景色设置为黑色,alpha
反对:
右图:您有一个半透明的黑色覆盖层,其中有一个子视图UIImageView
包含白色图案图像(图案是不透明的白色,无 Alpha)。并且您希望叠加中的图案也是半透明的。然后,您可以将背景颜色设置为黑色,alpha 1(不透明),并且整个视图的 alpha
正如您所看到的,左图上的图标是完全不透明的,但在右图中,您还可以通过星星图案看到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)