gpt4 book ai didi

swift - macOS : CALayer shadow not showing

转载 作者:行者123 更新时间:2023-12-03 17:09:54 34 4
gpt4 key购买 nike

我的 View 上需要一个阴影。我尝试使用 View 的 NSShadow 功能,但在 ScrollView 中使用它太慢了。我想尝试使用图层的阴影属性来提高性能。

在我的 NSView.updateLayer() 方法中,我设置了以下属性:

layer.shadowOffset = CGSize(width: 0, height: -3)
layer.shadowRadius = 3
layer.shadowColor = NSColor.black().cgColor
layer.shadowOpacity = 0.3

没有显示阴影。我还尝试将 NSView.wantsDefaultClipping 和 CALayer.masksToBounds 设置为 false,但仍然没有阴影。

为什么使用CALayer阴影属性时没有阴影?

最佳答案

您需要添加的是:

self.view.wantsLayer = true

我尝试运行以下代码;该图层确实显示了阴影:

let layer = CALayer()
layer.frame = CGRect(x: 50, y: 50, width: 100, height: 100)

layer.backgroundColor = NSColor.redColor().CGColor

layer.shadowOffset = CGSize(width: 0, height: -3)
layer.shadowRadius = 3
layer.shadowColor = NSColor.blackColor().CGColor
layer.shadowOpacity = 1.0 //Or: 0.3 as you originally have
self.view.wantsLayer = true
self.view.layer?.addSublayer(layer)

顺便说一下,以下行有一个拼写错误:

NSColor.black().cgColor

应该是这样:

NSColor.blackColor().CGColor

关于swift - macOS : CALayer shadow not showing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548729/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com