UIView反映CALayer属性

时间:2013-08-12 07:15:13

标签: iphone ios uikit core-animation

当更改UIView的基本视图属性(例如backgroundColor,alpha / opacity,frame)时,它实际上是在引擎盖下获得这些更改的层吗?简单来说,当我更改UIViews alpha时,例如它实际上是否更改了CALayers opacity属性?

1 个答案:

答案 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和图层不透明度是一样的。