使用UIBezierPath的带有圆角的TableView页眉和页脚

时间:2016-06-15 17:47:41

标签: swift uitableview uibezierpath

我想在tableview标题的左上角和右上角以及tableview页脚的两个底角添加圆角。我发现UIBezierPath是解决方案,但我的问题是只有一个角是圆形而另一个角不是。这是我的代码:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let  headerCell = tableView.dequeueReusableCellWithIdentifier("headerCell") as! myCustomHeaderCell


    let layer = CAShapeLayer()
    let corners = UIRectCorner.TopLeft.union(UIRectCorner.TopRight)
    layer.path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: headerCell.frame.width, height: headerCell.frame.height), byRoundingCorners: corners, cornerRadii:CGSizeMake(20.0, 20.0)).CGPath
    headerCell.layer.mask = layer
    return headerCell
}

错误在哪里?我需要更改什么才能使其正常工作?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我在设置bezier路径和约束时也发现了这个问题,但你可以设置headerCell.layer.cornerRadius = 20替换bezier,然后创建一个新视图,将其backgroundColor设置为与headerCell的backgroundColor相同(在InterfaceBuilder中或编程)将它设置在headerCell上方以屏蔽headerCell bottomLeft和bottomRight圆角。