0
当更改UIView的基本视图属性(例如backgroundColor,alpha/opacity,frame)时,它实际上是在引擎盖下获取这些更改的图层吗?简单来说,当我更改UIViews alpha时,例如实际上是否改变了CALayers opacity属性?UIView反映CALayer属性
当更改UIView的基本视图属性(例如backgroundColor,alpha/opacity,frame)时,它实际上是在引擎盖下获取这些更改的图层吗?简单来说,当我更改UIViews alpha时,例如实际上是否改变了CALayers opacity属性?UIView反映CALayer属性
在iOS上,视图是相当薄层的包装器,像frame/bounds,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
所以我们可以看到,鉴于α和图层不透明度都是一样的东西。
谢谢麦克你还可以解释什么时候用什么?我在某处读到“UIView控制,eyecandy图层”。你对此有何想法? – Krajsnick
视图更容易。尽可能使用视图动画。形式为animateWithDuration:animation:的新方法干净且易于使用。查看动画变得复杂得快。至于改变背景颜色等视图/图层属性,我认为这不重要。 –