在我的tableview中,我在tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
中有逻辑来确定单元格的顶部,底部或圆角是否有圆角。
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
// round top 2 corners
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: cell.bounds, byRoundingCorners: [UIRectCorner .TopLeft, UIRectCorner .TopRight], cornerRadii: CGSizeMake(4, 4)).CGPath
cell.layer.mask = maskLayer
}
if indexPath.section != 1 {
if indexPath.row == self.tableView.numberOfRowsInSection(indexPath.section) - 1 {
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: cell.bounds, byRoundingCorners: [UIRectCorner .BottomLeft, UIRectCorner .BottomRight], cornerRadii: CGSizeMake(4, 4)).CGPath
cell.layer.mask = maskLayer
}
}
}
这很有效,但是在我对tableview实现编辑之后,删除按钮会发生奇怪的事情。
圆角代码:
当我删除圆角时:
这让我很困惑,因为我不确定我做错了什么。有人可以帮忙吗?
答案 0 :(得分:0)
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
// round top 2 corners
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: cell.bounds, byRoundingCorners: [UIRectCorner .TopLeft, UIRectCorner .TopRight], cornerRadii: CGSizeMake(4, 4)).CGPath
cell.contentView.layer.mask = maskLayer
}
if indexPath.section != 1 {
if indexPath.row == self.tableView.numberOfRowsInSection(indexPath.section) - 1 {
let maskLayer = CAShapeLayer()
maskLayer.path = UIBezierPath(roundedRect: cell.bounds, byRoundingCorners: [UIRectCorner .BottomLeft, UIRectCorner .BottomRight], cornerRadii: CGSizeMake(4, 4)).CGPath
cell.contentView.layer.mask = maskLayer
}
}
}
使用cell.contentView.layer.mask = maskLayer
答案 1 :(得分:0)
简单的方法是在uitableviewcell上添加带有圆角的全尺寸视图。