当更改UIView的基本视图属性(例如backgroundColor,alpha / opacity,frame)时,它实际上是在引擎盖下获得这些更改的层吗?简单来说,当我更改UIViews alpha时,例如它实际上是否更改了CALayers opacity属性?
答案 0 :(得分:1)
在iOS上,视图是围绕图层的相当薄的包装器,并且大多数视图属性(如框架/边界,alpha等)实际上只是操纵底层。您可以在视图控制器中使用一小段代码验证您的alpha示例:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.view.alpha = 0.5f;
NSLog(@"Layer alpha: %f", self.view.layer.opacity);
self.view.layer.opacity = 1.0f;
NSLog(@"View alpha: %f", self.view.alpha);
}
打印出来:
Layer alpha: 0.500000
View alpha: 1.000000
因此我们可以看到视图alpha和图层不透明度是一样的。