我需要动态更改自定义 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
}