Erstellen Sie eine UIView mit nur einer diagonalen Seite

8

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

    
Odin 13.10.2014, 12:23
quelle

2 Antworten

12

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).

%Vor%

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.

    
Fogmeister 13.10.2014, 12:48
quelle
0

Der kürzeste Weg, dies zu erreichen, ist wahrscheinlich, die folgenden Schritte zu unternehmen:

  1. Unterklasse UIView
  2. Überschreiben Sie drawRect , um Ihre benutzerdefinierte Zeichnung für die Ansicht bereitzustellen
  3. Verwenden Sie in 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.

    
nburk 13.10.2014 12:31
quelle