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:的新方法乾淨且易於使用。查看動畫變得複雜得快。至於改變背景顏色等視圖/圖層屬性,我認爲這不重要。 –