如何为 NSView 显示阴影?
How to display shadow for NSView?
我在这里和其他博客中浏览了很多主题,但无法解决这个问题。我在 window 的内容视图中添加了一个子视图。这是故事板--
-
我已经将 customView 的出口拖到视图控制器,这里是视图控制器的代码 -
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.customView.wantsLayer = true
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.blackColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, -3)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我在我的项目中添加了 QuartzCore 框架工作 -
但是没有出现阴影,这是屏幕截图 -
.
我无法解决看似微不足道的问题。我错过了什么?感谢您的帮助。
如果我添加以下行就可以解决问题-
self.customView.shadow = NSShadow()
最终代码为-
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.view.superview?.wantsLayer = true
self.customView.wantsLayer = true
self.customView.shadow = NSShadow()
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.greenColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, 0)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我无法确定问题所在,可能有人会指出来。
我在这里和其他博客中浏览了很多主题,但无法解决这个问题。我在 window 的内容视图中添加了一个子视图。这是故事板--
我已经将 customView 的出口拖到视图控制器,这里是视图控制器的代码 -
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.customView.wantsLayer = true
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.blackColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, -3)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我在我的项目中添加了 QuartzCore 框架工作 -
但是没有出现阴影,这是屏幕截图 -
我无法解决看似微不足道的问题。我错过了什么?感谢您的帮助。
如果我添加以下行就可以解决问题-
self.customView.shadow = NSShadow()
最终代码为-
import Cocoa
import QuartzCore
class ViewController: NSViewController {
@IBOutlet weak var customView: NSView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.wantsLayer = true
self.view.superview?.wantsLayer = true
self.customView.wantsLayer = true
self.customView.shadow = NSShadow()
self.customView.layer?.backgroundColor = NSColor.redColor().CGColor
self.customView.layer?.cornerRadius = 5.0
self.customView.layer?.shadowOpacity = 1.0
self.customView.layer?.shadowColor = NSColor.greenColor().CGColor
self.customView.layer?.shadowOffset = NSMakeSize(0, 0)
self.customView.layer?.shadowRadius = 20
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我无法确定问题所在,可能有人会指出来。