2016-11-14 120 views
0

我做一個twitter動畫項目作爲練習。我想更改蒙版的背景顏色,但我不知道爲什麼要設置窗口背景顏色來更改它。爲什麼當我在iOS上設置窗口背景色時,蒙版的背景顏色會發生變化?

這是我在的AppDelegate

代碼
var mask: CALayer? 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    self.mask = CALayer() 
    self.mask?.contents = UIImage(named: "twitter")?.cgImage 
    self.mask?.contentsGravity = kCAGravityResizeAspect 
    self.mask?.bounds = CGRect(x: 0, y: 0, width: 100, height: 100) 
    self.mask?.position = self.window!.center 

    self.window?.rootViewController?.view.layer.mask = self.mask 
    self.window?.backgroundColor = UIColor(red: 18/255, green: 145/255, blue: 242/255, alpha: 1) // Why? 

    return true 
} 

回答

1

你掩蓋認爲你添加面具。 I.o.w.你掩蓋了self.window?.rootViewController?.view

一個遮罩,通過使用它應用到的圖層的alpha通道,將區域像模板一樣切出。因此,self.window?.rootViewController?.view,將根據您應用的面具進行「裁減」。因爲self.window?.rootViewController?.view直接位於self.window之上,所以在切出的部分將會看到self.window。如果未設置backgroundColor,則會看到黑色背景,這是Window的默認背景色。我希望這是有道理的。

+0

謝謝,我弄清楚了。 – ovo

1

您可以屏蔽設置backgroundcolor還,但它不是UIColor,它應該是CGColor類似,

self.window?.rootViewController?.view.layer.mask!.backgroundColor = UIColor(red: 18/255, green: 145/255, blue: 242/255, alpha: 1).CGColor 
+0

這不起作用。蒙版變成正方形,背景仍然是黑色。 – ovo