0

我需要动态更改自定义 UITableview 部分标题角半径。最初,所有拐角的节标题拐角半径为 5。将单元格添加到部分后,应删除左下角和右下角。我在自定义 UITableViewHeaderFooter 类的布局子视图方法中更改了它。但它没有反映,为所有角落添加了角落半径,添加单元格时不会改变。我的代码是:

   override func layoutSubviews() {
    super.layoutSubviews()
    textLabel?.textColor = UIColor.black
    contentView.backgroundColor = UIColor.clear
    backgroundView?.backgroundColor = UIColor.white
    if let sections = self.sections, let sectionIndex = self.sectionIndex, let values = sections[sectionIndex].values, values.count > 0, sections[sectionIndex].expanded {
        layer.cornerRadius = 5
        self.setRoundCorners(cornerRadius: 5, corners: [.topLeft, .topRight])
    } else {
        layer.cornerRadius = 5
        layer.mask = nil
    }
}

UIView 扩展

func setRoundCorners(cornerRadius:CGFloat,角:UIRectCorner){

    let path = UIBezierPath(roundedRect: bounds,
                            byRoundingCorners: corners,
                            cornerRadii: CGSize(width: cornerRadius, height: cornerRadius))
    let maskLayer = CAShapeLayer()
    maskLayer.path = path.cgPath
    layer.mask = maskLayer
}
4

0 回答 0