我正在尝试制作一个带有clip角的NSScrollView,类似于Twitter应用程序:
我有一个NSScrollView
子类,它添加了以下代码:
- (void)drawRect:(NSRect)dirtyRect {
NSBezierPath *pcath = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:kDefaultCornerRadius yRadius:kDefaultCornerRadius];
[path setClip];
[super drawRect:dirtyRect];
}
我希望
NSScrollView
的内容具有圆角,但是它不考虑剪切路径。我怎样才能做到这一点?更新和澄清
我知道如何制作自定义
NSScroller
,我知道如何使其透明覆盖。我要问的是如何使NSSCrollView
夹角,包括其包含的所有内容。 NSScrollView
位于NSView
内部,该背景的背景可能会发生变化,这意味着无法选择伪造圆角的视图覆盖。 最佳答案
您可以将蒙版应用于视图的图层:
[myScrollView setWantsLayer: YES];
[myScrollView layer].mask = ...;
掩码是另一个
CALayer
。因此,在这种情况下,您将创建一个CALayer
,将其背景色设置为不透明,设置其边界以匹配滚动视图,并为其指定一个cornerRadius
,例如8.0
。结果将是滚动视图及其所有内容似乎被掩盖为圆角半径为8px的圆角矩形。
关于cocoa - 如何使NSScrollView遵守剪切路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5268467/