如何在OS X上制作圆角WKWebView?

时间:2015-01-09 19:42:24

标签: objective-c cocoa calayer appkit wkwebview

如何在OS X上制作圆角WKWebView?

以前使用NSWebView,我们可以通过图层来完成:

webView.wantsLayer = YES;
webView.layer.cornerRadius = 5;
webView.layer.masksToBounds = YES;

但是在WKWebView上它不再有效。

1 个答案:

答案 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"]]];
}