2016-11-14 96 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