如何在TableView自定义单元格上为UIView的左上角和右上角设置拐角半径?

时间:2018-10-12 16:52:50

标签: ios swift xcode uitableview

ViewController.swift

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "mycell") as! CustomTableViewCell

    cell.backgroundColor = UIColor.clear

    cell.nameLbl.text = "\(adminNmaes[indexPath.row])"
    cell.aboutLbl.text = "\(aboutarray[indexPath.row])"
    if indexPath.row == 0
    {
        cell.view1.roundCorners(corners: [.topLeft,.topRight], radius: 10)
       // tableView.reloadData()
    }

    return cell
}

extension UIView {
func roundCorners(corners: UIRectCorner, radius: CGFloat) {
    let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
    let mask = CAShapeLayer()
    mask.path = path.cgPath
    layer.mask = mask
    }
}
我使用自动布局设置自定义单元格类,并使用扩展名仅对第一个单元格应用角半径。我还希望为页脚提供左下角和右下角的拐角半径,并为其提供10的边距。我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

enter image description here从iOS11开始,CALayer的属性maskedCorners:

var maskedCorners: CACornerMask { get set }

在您的情况下,您将使用:

cell.contentView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMinXMinYCorner]

这会将左上角和右上角遮罩到您设置的任何cornerRadius。

此外,您还需要确保contentView剪切其子视图,以使其符合形状

cell.contentView.clipsToBounds = true