2017-08-08 1 views
1

Ich versuche folgendes zu implementieren:Wie wird ein CGRect am unteren Ende abgeschnitten?

enter image description here

Eine benutzerdefinierte navigationbar, die am Boden gesenkt wird, wie kann ich dies mit CGRect tun?

Eine andere Alternative wäre, ein Bild davon zu machen und die Liste nach oben zu schieben, um den transparenten Teil im Bild zu überlappen. Ich würde die erste Lösung bevorzugen, wenn möglich. Irgendwelche Vorschläge?

Dies ist mein aktueller WIP Zustand: enter image description here

Antwort

2

Sie Bézier-Pfad verwenden können Gerade Linien hinzufügen und Ihre eigene Form wie diese machen:

let path = UIBezierPath() 
shape.move(to: CGPoint(x: 0, y: 0)) 
shape.addLine(to: CGPoint(x: 0, y: 320)) 
shape.addLine(to: CGPoint(x: 94, y: 320)) 
shape.addLine(to: CGPoint(x: 64, y: 0)) 
shape.close() 
+1

Ich glaube, Sie brauchen nicht so viele Punkte zu Um den gewünschten Effekt von OP zu erzielen, genügt es, ein Dreieck ganz unten zu zeichnen. Beachten Sie außerdem, dass closePath() den zuletzt hinzugefügten Punkt mit dem Startpunkt verbindet. Es ist nicht erforderlich, den ursprünglichen Punkt erneut hinzuzufügen, wenn er am Anfang endet. –

+0

Wie wird die Form auf das aktuelle Rect der Navigationsleiste angewendet? Durch Überschreiben von Draw? – Rovdjuret

+1

Sie können eine 'UINavigationbar' Unterklasse erstellen und Ihre Ansicht in der' drawRect' Methode hinzufügen. –

Verwandte Themen