如何显示NSView的阴影? [英] How to display shadow for NSView?
问题描述
我在这里和其他博客中经历了很多话题,但无法解决此问题.我在窗口的内容视图中添加了一个子视图.这是情节提要-
I have gone through many threads here and other blogs but not able to solve this issue. I have a added a subview in content view of window. Here is the storyboard--
-
我已将customView的出口拖到视图控制器中,这是视图控制器的代码-
I have dragged out outlet of customView to view controller and here is the code for view controller -
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框架-
I have added QuartzCore frame work in my project -
但是没有出现阴影,这是屏幕截图- .
But the shadow is not appearing, here is the screen shot - .
我无法解决看似微不足道的问题.我想念什么?谢谢您的帮助.
I am not able to solve what appears to be trivial. What am I missing? thanks for your help.
推荐答案
如果我添加以下行,则可以解决问题-
If I add the following line it solves the problem-
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.
}
}
}
我无法确定问题,可能有人在这里指出.
I am not able to identify the issue may be someone here will point it out.
这篇关于如何显示NSView的阴影?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!