NSView - setCornerRadius 曲线所有 4 个角
NSView - setCornerRadius curve all 4 corners
我正在开发一个 Mac 应用程序,需要一个带有 4 个圆角的自定义 NSView。我尝试过的所有方法要么没有结果,要么只使 NSView
的底部两条边弯曲。有没有办法将 NSView
的所有 4 个角都弯曲?
我尝试制作自定义 class 并使用了 initWithFrame
方法,但一直没有产生任何结果。然后我尝试了 drawRect
方法,该方法仅使底部的两个角弯曲:
-(void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
[self setWantsLayer:YES];
[self.layer setFrame:self.frame];
[self.layer setMasksToBounds:YES];
[self.layer setCornerRadius:10.0f];
}
如何将四个角全部弯曲?有谁知道为什么 Mac 的开发比 iOS 难得多。为什么即使是最基本的任务也总是需要自定义 class(即:设置 NSView 背景颜色或 运行 相当于 UIViewAnimation
...)。
丹,谢谢你的时间。
这三行为 NSView
类型的 testView
提供了圆角和红色背景,链接为 ViewController 的 viewDidLoad
故事板中的出口,否需要子类化:
_testView.wantsLayer = YES;
_testView.layer.backgroundColor = [NSColor redColor].CGColor;
_testView.layer.cornerRadius = 10.;
编辑
由于这条线,并不是所有的角都是圆的:
[self.layer setFrame:self.frame];
基本上你不需要它,你用这行设置适当的图层框架:
[self setWantsLayer:YES];
如果你确实想明确地设置图层框架,你想使用
[self.layer setFrame:self.bounds];
了解 frame
和 bounds
之间的区别。
上述代码也适用于 drawRect:
。
我正在开发一个 Mac 应用程序,需要一个带有 4 个圆角的自定义 NSView。我尝试过的所有方法要么没有结果,要么只使 NSView
的底部两条边弯曲。有没有办法将 NSView
的所有 4 个角都弯曲?
我尝试制作自定义 class 并使用了 initWithFrame
方法,但一直没有产生任何结果。然后我尝试了 drawRect
方法,该方法仅使底部的两个角弯曲:
-(void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
[self setWantsLayer:YES];
[self.layer setFrame:self.frame];
[self.layer setMasksToBounds:YES];
[self.layer setCornerRadius:10.0f];
}
如何将四个角全部弯曲?有谁知道为什么 Mac 的开发比 iOS 难得多。为什么即使是最基本的任务也总是需要自定义 class(即:设置 NSView 背景颜色或 运行 相当于 UIViewAnimation
...)。
丹,谢谢你的时间。
这三行为 NSView
类型的 testView
提供了圆角和红色背景,链接为 ViewController 的 viewDidLoad
故事板中的出口,否需要子类化:
_testView.wantsLayer = YES;
_testView.layer.backgroundColor = [NSColor redColor].CGColor;
_testView.layer.cornerRadius = 10.;
编辑
由于这条线,并不是所有的角都是圆的:
[self.layer setFrame:self.frame];
基本上你不需要它,你用这行设置适当的图层框架:
[self setWantsLayer:YES];
如果你确实想明确地设置图层框架,你想使用
[self.layer setFrame:self.bounds];
了解 frame
和 bounds
之间的区别。
上述代码也适用于 drawRect:
。