首页 > 解决方案 > 在 xCode 中自定义控制视图外观

问题描述

我正在为 OSX 创建一个应用程序,我唯一需要的是删除我的应用程序窗口的背景颜色。

如果我运行该应用程序,它将出现一个可能是白色或黑色(Aqua、Dark Aqua)的窗口。 在此处输入图像描述

所以,我尝试进入“ViewController.swift”文件并编写了这段代码

class ViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // tell the controller's view to use a CALayer as its backing store
        view.wantsLayer = true
        // change the background color of the layer
        view.layer?.backgroundColor = NSColor.red.cgColor
    }
}

例如,通过这种方式,我将背景颜色变为红色。但是,这不是我想要的。所以我尝试了另一种方式(使用 RGBA 颜色)

class ViewController: NSViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // tell the controller's view to use a CALayer as its backing store
        view.wantsLayer = true
        // change the background color of the layer
        view.layer?.backgroundColor = CGColor(red: 255/255, green: 0/255, blue: 0/255, alpha: 1)
    }
}

我看到降低'alpha'值,不透明度也会降低。所以,我尝试了

CGColor(red: 255/255, green: 0/255, blue: 0/255, alpha: 0)

红色消失了,但现在您可以看到 ViewController 的白色(或黑色)颜色。

我知道我只是用颜色创建了另一个图层(如 ImageView),但我没有修改 ViewController 背景。有没有办法我可以做到这一点?或者这是不可能的?

标签: xcode

解决方案


我已经找到了解决方案。只需转到“ViewController.swift”文件,然后写这个

class ViewController: NSViewController {

    override func viewWillAppear() {
        super.viewWillAppear()
        view.window?.isOpaque = false
        view.window?.backgroundColor = NSColor(red: 1, green: 0.5, blue: 0.5, alpha: 0.0)
    }
}

如果您想更改颜色,只需修复红色、绿色、蓝色值。alpha 值决定透明度。


推荐阅读