In meiner Tabellenansicht habe ich Logik in meinem tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath)
um festzustellen, ob eine Zelle abgerundete Ecken auf der Oberseite, Unterseite oder keine abgerundeten Ecken hat.Löschtaste wird nicht auf UITableViewCell mit abgerundeten Ecken angezeigt
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
}
}
}
Dies funktioniert, aber nachdem ich die Bearbeitung in der Tabellenansicht implementiert haben, passieren seltsame Dinge mit dem Löschen-Button.
mit den abgerundeten Ecken Code:
Wenn ich die abgerundeten Ecken zu entfernen:
Das verwirrt mich wirklich, weil ich nicht sicher bin, was ich tue falsch. Kann jemand helfen?
Haben Sie versucht, indem 'cell.layer.maskToBounds = true'? –
Sie sollten dies wahrscheinlich nicht direkt mit der Zellenansicht tun. Versuchen Sie, die Ebenenmaske stattdessen auf die contentView der Zelle anzuwenden und sehen Sie, ob das funktioniert. – Bringo