UIView的不透明度、alpha值和背景颜色之间有什么关系?

10
2个回答

24

backgroundColorUIView 背景中的颜色。默认情况下,它是 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;

苹果的文档解释了opaque属性为什么以及如何工作:

该属性为绘图系统提供了一个提示,告诉它应如何处理视图。如果设置为YES,则绘图系统将视图视为完全不透明,这样可以优化某些绘图操作并提高性能。如果设置为NO,则绘图系统会正常地合成该视图与其他内容。此属性的默认值为YES。

不透明视图应填充其边界以完全不透明的内容 - 即内容应具有alpha值为1.0。如果视图是不透明的,并且未填充其边界或包含完全或部分透明的内容,则结果是不可预测的。如果视图是完全或部分透明的,则应始终将此属性的值设置为NO。


很好的回复。它帮助了我很多。 - demon

6

opaque 含义:

不透明的

transparency 含义:

透明,不是不透明的

alpha 含义:

RGBA 模型的发明者根据经典线性插值公式 αA + (1-α)B 中的希腊字母将其命名为 alpha。

我们可以假设在图形和图像上下文中 alpha 是不透明的同义词。

opaque、transparency 和 alpha 之间的关系:

opaque 与 alpha 成正比,与 transparency 成反比。

即 alpha 值的增加导致 opaque 的增加和 transparency 的减少。

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

如果视图的 alpha 为 0.0,则完全透明。

opaque、alpha 和 backgroundcolor 之间的关系:

alpha 还将影响背景颜色的 alpha,即如果背景颜色是 0.5 的透明度,并且 alpha 也是 0.5,则会使背景视图的 alpha 为 0.25(0.5 * 0.5)。

Opaque 性能:

如果将 opaque 设置为 YES,则性能将提高,因为不会与底层视图或颜色混合。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接