UITableView 的圆角

Rai*_*ins 1 uitableview ios

我正在尝试将 的上角圆化UITableView。但表视图未显示。这里出了什么问题?

// 表格视图设置

lazy var tableView: UITableView = {
        let tv = UITableView()
        tv.delegate = self
        tv.dataSource = self
        tv.separatorStyle = .none
        tv.backgroundColor = .white
        tv.layer.masksToBounds = true
        tv.roundUpperCorners(radius: 12)
        return tv
    }()
Run Code Online (Sandbox Code Playgroud)

// 圆化上角。

 func roundUpperCorners(radius: CGFloat) {
        let maskPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: radius, height: radius))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = self.bounds
        maskLayer.path = maskPath.cgPath
        self.layer.mask = maskLayer
    }
Run Code Online (Sandbox Code Playgroud)

iPa*_*tel 6

根据@Fahri Azimov评论,您应该设置表格视图的框架,首先遵循他的评论。如果仍然面临问题,请使用下面的代码。

从我的代码来看,

myTblView.clipsToBounds = true
myTblView.layer.cornerRadius = 10 // Set As you want
myTblView.layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner]
Run Code Online (Sandbox Code Playgroud)

注意: iOS 11 中新增了maskedCorners,您可以从官方文档中阅读。