0

当更改 UIView 的基本视图属性(例如 backgroundColor、alpha/opacity、frame)时,实际上是在底层获得了这些更改吗?简单地说,例如当我更改 UIViews alpha 时,它实际上是更改了 CALayers 不透明度属性吗?

4

1 回答 1

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

所以我们可以看到view alpha和layer opacity是一回事。

于 2013-08-12T09:04:03.653 回答