【发布时间】:2013-08-12 07:15:13
【问题描述】:
当更改 UIView 的基本视图属性(例如 backgroundColor、alpha/opacity、frame)时,实际上是在底层获得了这些更改吗?简单地说,例如当我更改 UIViews alpha 时,它实际上是 CALayers opacity 属性发生了变化吗?
【问题讨论】:
标签: iphone ios uikit core-animation
当更改 UIView 的基本视图属性(例如 backgroundColor、alpha/opacity、frame)时,实际上是在底层获得了这些更改吗?简单地说,例如当我更改 UIViews alpha 时,它实际上是 CALayers opacity 属性发生了变化吗?
【问题讨论】:
标签: iphone ios uikit core-animation
在 iOS 上,视图是层的相当薄的包装器,并且大多数视图属性(如框架/边界、alpha 等)确实只是在操纵底层。您可以在视图控制器中使用一点 sn-p 代码来验证您的 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是一回事。
【讨论】: