如何在OS X上制作圆角WKWebView?
以前使用NSWebView,我们可以通过图层来完成:
webView.wantsLayer = YES;
webView.layer.cornerRadius = 5;
webView.layer.masksToBounds = YES;
但是在WKWebView上它不再有效。
答案 0 :(得分:7)
图层不会对其下方的细节执行隐式屏蔽。要使角落掩盖,您应该在代码中添加以下内容:
webView.layer.masksToBounds = YES;
来自CALayer
的文档:
当此属性的值为
YES
时,Core Animation会创建一个与图层边界匹配的隐式剪裁蒙版,并包含任何角半径效果。此属性的默认值为
NO
。
我使用了以下简单的示例代码,它显示了圆角:
- (void)windowDidLoad {
[super windowDidLoad];
WKWebView *wv = [[WKWebView alloc] initWithFrame:self.containerView.bounds
configuration:[[WKWebViewConfiguration alloc] init]];
wv.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
[self.containerView addSubview:wv];
wv.wantsLayer = YES;
wv.layer.cornerRadius = 50;
wv.layer.masksToBounds = YES;
[wv loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://stackoverflow.com"]]];
}