ios 如何在底部视图swift(而不是uiview)上只生成圆角[已关闭]

rjee0c15  于 2022-11-26  发布在  iOS
关注(0)|答案(2)|浏览(142)

已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

4天前关闭。
Improve this question
我试图在视图的底部制作圆角。这是一个Webview。我希望它看起来像这样:image
我在网上搜索过,它确实能正常工作。它总是能显示UIView的东西,我不会用它。

gopyfrb3

gopyfrb31#

如果查看WKWebView的文档,您会发现它继承自UIView:

class WKWebView : UIView

这意味着您可以从WKWebView访问UIView的所有属性,包括layer

yourWebView.clipsToBounds = true
yourWebView.layer.cornerRadius = 32
yourWebView.layer.maskedCorners = [.layerMinXMaxYCorner, .layerMaxXMaxYCorner] /// round the bottom left and bottom right
f87krz0w

f87krz0w2#

请使用此方法

open func roundCorners(corners: UIRectCorner = .allCorners, radius: CGFloat = 0.0, borderColor: UIColor = .clear, borderWidth: CGFloat = 0.0, clipToBonds: Bool = true) {
    clipsToBounds = clipToBonds
    layer.cornerRadius = radius
    layer.borderWidth = borderWidth
    layer.borderColor = borderColor.cgColor
    
    if corners.contains(.allCorners){
        layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMaxXMaxYCorner]
        return
    }
    
    var maskedCorners = CACornerMask()
    if corners.contains(.topLeft) { maskedCorners.insert(.layerMinXMinYCorner) }
    if corners.contains(.topRight) { maskedCorners.insert(.layerMaxXMinYCorner) }
    if corners.contains(.bottomLeft) { maskedCorners.insert(.layerMinXMaxYCorner) }
    if corners.contains(.bottomRight) { maskedCorners.insert(.layerMaxXMaxYCorner) }
    layer.maskedCorners = maskedCorners
}

并通过传递如下参数来调用此方法

firstView.roundCorners(corners: [.bottomLeft, .bottomRight], radius: 20, borderColor: .clear, borderWidth: 0, clipToBonds: true)

相关问题