我正在尝试将 的上角圆化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)
根据@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,您可以从官方文档中阅读。
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |