Ich muss eine UIView erstellen, bei der der linke Rand um 45 Grad geneigt ist Ich frage mich, gibt es einen Weg, dies programmatisch zu erreichen? Hilft mir CATransform3D in diesem Fall, da es sich nicht wirklich um eine "3D-Rotation" handelt?
Bearbeiten
Hier ist ein Bild, das mehr meine benötigte Ausgabe erklärt
Wenn Sie nur die Form ohne Inhalt möchten, können Sie ein CAShapeLayer
erstellen und es der Ebene Ihrer Ansicht hinzufügen. (Tatsächlich können Sie mit dieser Methode auch Inhalte einfügen, aber Sie müssen sie etwas ändern).
Dies erfordert nicht die Verwendung von drawRect
oder irgendetwas. Sie müssen die Koordinaten basierend auf den gewünschten Werten ändern.
Sie können auch eine UIView
Unterklasse verwenden und drawRect
überschreiben. Es erfordert mehr Arbeit, aber die UIBezierPath
wird ziemlich gleich sein.
CALayer
ist sehr mächtig und wird von Apple oft verwendet. Zum Beispiel wird der Bearbeitungsbereich in Pages fast ausschließlich mit CALayer
s geschrieben.
Der kürzeste Weg, dies zu erreichen, ist wahrscheinlich, die folgenden Schritte zu unternehmen:
UIView
drawRect
, um Ihre benutzerdefinierte Zeichnung für die Ansicht bereitzustellen drawRect
das Core Graphics API
, mit dem Sie benutzerdefinierte Formen in einem Zeichnungskontext zeichnen können, und bietet Funktionen wie rotation
oder scaling
an.
Hier ist eine Übersicht über die API aus den Apple-Dokumenten.
Tags und Links ios swift uiview cashapelayer diagonal