【发布时间】:2013-12-23 18:34:57
【问题描述】:
我想知道两者的区别:
- 用 为我的 UIView 分配颜色
- 为它分配一个不透明的颜色,但给 UIView 一个
在屏幕截图上,我制作了两个 UIView,每个顶部都有两个黑色 (alpha = 1.0) UILabel:
假设之前定义了宏_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 而不是 bg 颜色,也会影响子视图。但除此之外,我应该考虑的功能有什么不同吗? (例如,关于动画、图层等)
【问题讨论】:
-
据我了解,唯一的区别是您已经注意到,视图上的
setAlpha:会影响它的子视图(不是超级视图),而UIColor上的alpha只会影响背景颜色本身。
标签: ios objective-c uiview transparency alpha