2016-06-15 8 views
1

Ich möchte runde Ecken zur oberen linken und oberen rechten Ecke eines Tabellenansicht Header und zu den beiden unteren Ecken einer Tabellenansicht Fußzeile hinzufügen. Ich habe UIBezierPath als Lösung gefunden, aber mein Problem ist, dass nur eine Ecke rund ist und die andere nicht. Hier ist mein Code:TableView Kopf- und Fußzeile mit abgerundeten Ecken mit 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 
} 

Wo ist der Fehler? Was muss ich ändern, damit es funktioniert?

Vielen Dank für Ihre Hilfe!

+0

das funktioniert für mich wie sollte, so kann ich nicht reproduzieren Sie Ihren Fehler, vielleicht ist Ihr Problem mit Einschränkungen stattdessen –

Antwort

0

Ich habe auch dieses Problem gefunden, wenn Bezier Pfad zusammen mit Einschränkungen festgelegt, aber Sie können headerCell.layer.cornerRadius = 20 ersetzt Bézier, und erstellen Sie eine neue Ansicht, legen Sie die backgroundColor genauso wie die backgroundColor (in InterfaceBuilder oder Programmierung) setzen Sie es über Ihre headerCell, um die headerCell bottomLeft und bottomRight runden Ecke zu maskieren.

+0

Ich zweite dieser Ansatz! –