UIView属性的opaque,alpha和backgroundColor之间的关系是什么?

时间:2012-01-12 03:56:16

标签: ios performance uiview alpha

例如:

  1. 我将UIView的alpha属性设置为alpha = 0,这是否意味着将其opaque属性视为opaque=YES

  2. opaquealphabackgroundColor如何影响效果?

  3. 还有别的吗?...

  4. 类似问题

2 个答案:

答案 0 :(得分:24)

backgroundColor是显示在UIView背面的颜色。默认情况下,它为nil,从而为UIView生成清晰的背景色。要为UIView指定背景,请指定UIColor,如下所示:

myView.backgroundColor = [UIColor greenColor];

您还可以将backgroundColor设置为图片:

myView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed@"myImage"]];

alpha是视图的不透明度。您可以使用此属性淡化UIView并使其部分透明。该值的范围可以从0(完全不可见)到1(完全不透明)。


opaque是一个布尔值,表示UIView是否不透明。如果您已将alpha设置为小于1的任何值,则应将opaque设置为NO:

myView.opaque = NO;

Apple的documentation解释了opaque属性的原因和方式:

  

此属性提供绘图系统的提示   应该对待视图。如果设置为YES,绘图系统将处理   视图为完全不透明,允许绘图系统优化一些   绘图操作和提高性能。如果设置为NO,则绘图   系统通常与其他内容合成视图。默认   该属性的值为YES。

     

预计不透明视图将完全不透明填充其边界   内容 - 也就是说,内容的alpha值应为1.0。如果   视图是不透明的,或者不填充其边界或完全包含   或部分透明的内容,结果是不可预测的。您   如果视图是,则应始终将此属性的值设置为NO   完全或部分透明。

答案 1 :(得分:6)

不透明含义:

不透明

透明度含义:

看透,不透明

alpha含义:

RGBA模型的发明者在经典线性插值公式αA + (1-α)B

中的希腊字母之后命名为alpha

要理解我们可以假设alpha是此图形和图像上下文中opaque的同义词。

不透明,透明度和alpha之间的关系:

opaque与alpha直接相反 与透明度相反 即 增加alpha值会导致不透明度增加并降低透明度

如果视图的alpha为1.0,则它完全不透明

如果某个视图的alpha为0.0,那么它就完全透明了。

opaque,alpha和backgroundcolor之间的关系:

alpha也会影响背景颜色的alpha值,即如果背景颜色为0.5透明且alpha也为0.5,则会产生背景视图的alpha 0.25(0.5 * 0.5)

不透明的表现:

如果你将opaque设置为YES,那么性能就会提高,因为混合不会发生在底层视图或颜色上