Eine Möglichkeit, dies zu erreichen, wäre, die draw(_:)
-Methode von UIView
zu überschreiben und dort Ihre benutzerdefinierte Zeichnung auszuführen.
Das Zeichnen diagonaler Linien ist ziemlich einfach, Sie müssen nur:
Stride von 0 bis Breite + Höhe (entlang der horizontalen Kante der Rect, dann die vertikale), durch die Lücke + Linienbreite, konvertiert von einer diagonalen (in 45º) Länge parallel zu sein Rand des Rect zu zeichnen.
Zeichnen Sie bei jeder Iteration eine Linie von dem gegebenen Punkt für diese Iteration zu dem Punkt an der gegenüberliegenden Kante (bei 45º). Wir bekommen diesen Punkt, indem wir einfach die vertikale Kante des Rect bearbeiten, dann entlang der horizontalen)
So etwas sollte das gewünschte Ergebnis erzielen:
%Vor%Ausgabe:
(Angenommen, die Ansicht hat ein rotes backgroundColor
)
Sie können die Eigenschaften lineGap
und lineWidth
anpassen, um unterschiedliche Ergebnisse zu erzeugen.
Sagen Sie, Sie haben diese Werte ...
%Vor%Erstaunlicherweise ist es so einfach ...
%Vor%Hier ist eine vollständige UIView-Klasse:
%Vor%Das ist es!
Der gesamte fundamentale Algorithmus:
Schön und einfach! :)
Die obige Klasse zeichnet sie einfach als "Größe der UIView". Oft möchten Sie eine Anzahl der "Kästchen" tatsächlich in der Ansicht an verschiedenen Koordinaten zeichnen. (Ein gutes Beispiel ist für einen Kalender).
Außerdem zeichnet dieses Beispiel explizit "beide Streifen", anstatt einen Streifen über die Hintergrundfarbe zu zeichnen:
%Vor%1, Zum Versetzen ziehen Sie den Zeiger einfach ab, wenn Sie ihn starten. Erstaunlicherweise muss nichts geändert werden.
%Vor%2, Vorsichtige Programmierer bevorzugen einen Offset gleich der Gehrung , um das Problem der "spitzen linken Ecke" zu vermeiden:
%Vor% 3, Sie können eine beliebige Anzahl von Streifen in verschiedenen Farben verwenden, und tatsächlich können Sie unterschiedliche Streifenbreiten in beliebiger Kombination verwenden. Erstaunlicherweise funktioniert der Algorithmus immer noch und ist sicher. (Wenn Sie mehr als eine Breite haben, stellen Sie einfach die Gehrung m
als maximale Breite ein.)
Tags und Links ios uiview core-graphics