uibezierpath

___ answer37158787 ___

Schnelle Version der akzeptierten Antwort:

%Vor%     
___ answer29635485 ___

Sie könnten: 1) UIBezierPfads in den Bildkontext rendern. 2) Fügen Sie UIImageView als Unteransicht Ihrer Ansicht hinzu und legen Sie die image -Eigenschaft mit dem gerenderten Bild fest. Etwas wie das:

%Vor%     
___ qstntxt ___

Ich bin ganz neu bei der Verwendung von UIBezierPfads zum Zeichnen von Formen. Alle Beispiele, die ich bisher gefunden habe, beinhalten zuerst das Unterklassifizieren einer Ansicht, dann das Überschreiben der %code% -Methode und das Ausführen der Zeichnung darin, aber ich konnte nichts finden, was mit absoluter Sicherheit sagt, ob dies der einzige Weg ist UIBezierPaths innerhalb einer UIView zu zeichnen, oder wenn dies nur der pragmatischste Weg ist.

Gibt es (neben dem Swizzling) noch eine andere Möglichkeit, einen UIBezierPath in einer UIView zu zeichnen, ohne ihn zu unterklassifizieren?

    
___ answer45701811 ___

Swift 3 akzeptierte Antwort:

%Vor%     
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ tag123uiview ___ UIView ist eine Klasse im UIKit-Framework von iOS definiert einen rechteckigen Bereich auf dem Bildschirm und die Schnittstellen für die Verwaltung des Inhalts in diesem Bereich. Alle UI-Elemente sind entweder Unterklassen von UIView oder sind in einer UIView enthalten. ___ tag123uibierpfad ___ Mit der UIBezierPath-Klasse können Sie einen Pfad definieren, der aus geraden und gekrümmten Liniensegmenten besteht, und diesen Pfad in Ihren benutzerdefinierten Ansichten rendern. ___ tag123uikit ___ UIKit (nicht zu verwechseln mit dem Frontend-Framework UIKit) ist das objektorientierte Framework, das für den Großteil der iOS-Benutzeroberfläche verantwortlich ist. ___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Funktionen beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die verwandten Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ answer29636214 ___

Eine andere Möglichkeit, Bezier-Pfade ohne drawRect zu zeichnen, ist die Verwendung von CAShapeLayers. Legen Sie die Pfadeigenschaft einer Formebene auf einen CGPath fest, der aus dem Bezierpfad erstellt wurde. Fügen Sie dem Layer Ihrer Ansicht die Formebene als Unterebene hinzu.

%Vor%     
___ qstnhdr ___ Zeichne UIBezierPaths in UIView ohne Unterklasse? ___
1
Antwort

So erhalten Sie UIBezierpath mithilfe von Glyph im iOS SDK

Wie können wir UIBezierPath von einem Charakter mit Glyph im iOS SDK erhalten. Ich war durch dieses gegangen, aber es zeigt doppelte Zeile und ich möchte nur eine einzelne Zeile .. > Da ich neu in dieser Forschung bin ... Bitte hel...
29.05.2012, 06:52
5
Antworten

Positionieren / Ändern der Größe von UIBezierPath

Ich habe eine ziehbare Ansicht mit einer Maskenebene. Die Maskenebene hat einen UIBezierPath, der einen Bereich in der Ansicht transparent macht (der Effekt, den ich möchte). Mein Endziel ist es, die Position und Größe des Pfades (nicht die Mask...
05.12.2013, 12:44
2
Antworten

Einen Pfad mit einem Gradienten auf iOS füllen

Bei CAShapeLayer habe ich eine geschlossene UIBezierPath gezeichnet. Ich kann diese Form füllen, indem ich fillColor festlege, aber ich möchte die Form mit einem Farbverlauf füllen. Wie kann ich die CAGradientLayer so einrichten, das...
06.04.2012, 14:16
1
Antwort

"ungültiger Kontext 0x0" bei Verwendung von UIBezierPath und CAShapeLayer

Ich habe eine Zwangslage, die der in dieser SO-Thread . Ich habe jede Antwort auf diesen Thread gelesen und konnte keine finden, die mein Problem gelöst haben. Ich habe mein Problem auf 4 Zeilen innerhalb der Funktion unten eingegrenzt. Jede de...
02.08.2014, 21:13
1
Antwort

Positionieren Sie CGPath / UIBezierPath in View neu

Ist es möglich, einen bereits gezeichneten CGPath / UIBezierPath in einer Ansicht neu zu positionieren? Ich möchte die Position eines Pfades verschieben oder ändern und dann vielleicht die draininRect-Methode aufrufen, um die Zeichnung einfach w...
18.06.2013, 12:31
3
Antworten

Anfangs- und Endwinkel von UIBezierPath?

Ich habe in iOS für den halben Kreis wie folgt codiert: UIBezierPath und CAShapeLayer . %Vor% Dies ergibt sich wie folgt. Ich möchte diesen blauen Halbkreis auf der gegenüberliegenden Seite der Weltkugel. Es ist Halbkreis, abe...
23.08.2015, 09:17
1
Antwort

Runden der Kanten eines Strichs im Bezier-Pfadkreis in swift

Ich versuche einen Kreis mit UIBezierPath(ovalInRect: CGRectMake()) zu zeichnen. Dann ändere ich die Eigenschaft strokeEnd . Wenn dies passiert, haben beide Enden der kreisförmigen Linie scharfe Ecken. Gibt es eine Möglichkeit, diese Ecken...
19.12.2015, 18:04
3
Antworten

Beschneidet ein Bild in die Form eines Overlays - iOS

Ich füge das Overlay mit der Ansicht von pickerController und dem uinavigationcontroller delete wie folgt hinzu. %Vor% Wenn das oben definierte Overlay hinzugefügt wird, tendiere ich dazu, diese Ansicht zu erhalten: Ich kann das Bild...
09.09.2014, 22:42
2
Antworten

Was ist der Unterschied zwischen dem Schließen des Bezier-Pfades mit der closePath-Funktion und dem manuellen Schließen?

Ich versuche ein Rechteck mit UIBezierPath zu erstellen. Ich habe zwei verschiedene Wege gewählt, um es zu zeichnen. Außerdem habe ich die Strichbreite auf 25 px erhöht. Erste Methode: Verwenden von closePath %Vor% Ausgabe: Zwei...
12.09.2014, 11:14
2
Antworten

Zeichnen einer Linie mit Bezierpath mit dem CAShapeLayer-Objekt

Ich mache einen Bildeditor, der verschiedene Formen Objekte wie Kreis, Dreieck und Quadrat erstellen kann, die auch aktualisiert oder entfernt werden können. Also habe ich CAShapeLayer zum Erstellen von Shapes-Objekten verwendet. Jetzt möc...
02.10.2013, 12:00