我已经使用了UITableview部分标题和其他单元来显示内容,但是当涉及到角半径时,我们怎样才能实现这样的布局而不会有任何痛苦。
我试图给topview,topRight和最后一个cell to bottomLeft,bottomRight的tableview标题提供转角半径,但它对我不起作用。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
guard let headerView = tableView.dequeueReusableCell(withIdentifier: "headerCell") as? headerCell else { return UIView() }
headerView.labelTaskName.text = arrayTaskLists[section].first?.outcome_title
headerView.viewContainerHeader.roundCorners([.topRight,.topLeft], radius: 10.0)
headerView.viewContainerHeader.layoutSubviews()
headerView.btnHeaderViewCell.tag = section
headerView.delegate = self
return headerView
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 44
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifier.TaskInformationCell) as! TaskInformationCell
cell.infoView.roundCorners([.bottomLeft,.bottomRight], radius: 10.0)
cell.infoView.layoutSubviews()
}
感谢您的帮助。
答案 0 :(得分:0)
对单元格使用Disclouser tableviewcell,为Top Header
使用section header答案 1 :(得分:-2)
您可以更改TableViewCell的de backgroundView,创建UIView的子类并更改图层类:
class BackgroundView: UIView
{
class var layerClass: AnyClass
{
return CAShapeLayer.self
}
}
稍后在cellForRowAtIndexPath
你会做这样的事情:
private var CellIdentifier = "CustomCell"
let cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifier, for: indexPath) as? CustomCell
let frame: CGRect? = cell?.backgroundView.frame
cell?.backgroundView = BackgroundView(frame: frame ?? CGRect.zero)
var corner: CGFloat = 20.0
var path = UIBezierPath(roundedRect: cell?.backgroundView.bounds ?? CGRect.zero, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: corner, height: corner))
var shapeLayer = cell?.backgroundView.layer as? CAShapeLayer
shapeLayer?.path = path.cgPath
shapeLayer?.fillColor = cell?.textLabel.backgroundColor?.cgColor
shapeLayer?.strokeColor = UIColor.lightGray.cgColor
shapeLayer?.lineWidth = 1.0
return cell