【发布时间】:2015-06-20 03:56:52
【问题描述】:
在我的 ViewController 的主 NSView 中,我重写了 func drawRect(dirtyRect: NSRect) 方法以使用 NSBezierPath 在我的主视图上实现圆角。
在同样的方法中,我还指定了我的主视图的渐变背景。
override func drawRect(dirtyRect: NSRect) {
let path: NSBezierPath = NSBezierPath(roundedRect: self.bounds, xRadius: 18.0, yRadius: 18.0)
path.addClip()
let gradient = NSGradient(startingColor: NSColor(hexColorCode: "#383838"), endingColor: NSColor(hexColorCode: "#222222"))
gradient.drawInRect(self.frame, angle: 90)
}
出现的问题如下图所示:
图像显示了其中一个视图角。圆角只是部分成功,因为仍然有一个白色的角伸出窗口的圆角。
如果有人有更好的方法来设置窗户的圆角半径,我会接受这样的建议。我对这个问题做了很多研究,但是这个解决方案似乎是最简单的。
非常感谢任何有关如何解决此问题的建议。
【问题讨论】:
-
为您的视图提供清晰的背景色。
-
我该怎么做呢?
NSColor.clearColor().set()没有帮助... -
抱歉,我想到了 iOS 中
UIView的backgroundColor属性。我不确定NSView是否有类似的东西。 -
这可能会帮助某人找到这个问题的答案。我注意到,如果您将拐角半径增加到一半以上,问题就会消失。