Swift 如何创建一个顶部圆角、底部正常圆角和整个视图周围边框的UIView?

Swift 如何创建一个顶部圆角、底部正常圆角和整个视图周围边框的UIView?,swift,Swift,这就是我用这个代码得到的 private func setupBorders(){ let path = UIBezierPath(roundedRect: mainTableView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20)) let maskLayer = CAShapeLayer() maskLayer.path = pat

这就是我用这个代码得到的

private func setupBorders(){
    let path = UIBezierPath(roundedRect: mainTableView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20))
    let maskLayer = CAShapeLayer()
    maskLayer.path = path.cgPath
    mainTableView.layer.mask = maskLayer
    mainTableView.layer.borderColor = UIColor.darkGray.cgColor
    mainTableView.layer.borderWidth = 1.0
}
MainTableView是包含记事本表格和表格标题的uiview。如果我可以让它为任何UIView工作,那么它将为这一个工作。非常感谢任何能提供帮助的人


编辑:如果不清楚,问题是圆角上的边框消失。

遮罩层不足以满足您的要求,因为层边框与层遮罩无关。相反,您应该创建一个用于绘制背景和边框的视图,它也应该沿着边框剪裁其内容。

在情节提要中,将UIView拖动到ViewController,根据需要设置约束,将其链接到NewView,然后尝试此操作

import UIKit
import QuartzCore

class ViewController: UIViewController{

    @IBOutlet var NewView :UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let screenSize: CGRect = UIScreen.mainScreen().bounds
        let HeightFloat :CGFloat = screenSize.height - 60
        let WidthFloat :CGFloat = screenSize.width - 50

        let NewRect :CGRect = CGRectMake(10, 20, WidthFloat, HeightFloat)

        let maskPath = UIBezierPath(roundedRect: NewRect,
                                    byRoundingCorners: [.TopLeft, .TopRight],
                                    cornerRadii: CGSize(width: 10, height: 10))

        let shape = CAShapeLayer()
        shape.path = maskPath.CGPath
        shape.fillColor = UIColor.clearColor().CGColor
        shape.strokeColor = UIColor.darkGrayColor().CGColor
        shape.lineWidth = 2
        shape.lineJoin = kCALineJoinRound

        NewView.layer.mask = shape


    }

}
你会得到你的输出,