Ja, da Sie die drawRect-Methode bereits überschreiben, ist dies ausreichend.
%Vor%Ändern Sie die Werte innerhalb der Frames wie gewünscht.
Mit Swift 4 und iOS 11 können Sie je nach Ihren Bedürfnissen eine der beiden folgenden Möglichkeiten wählen, um Ihr Problem zu lösen.
CGRect
-Instanz mit einer UIColor
-Instanz in einer UIView
-Unterklasse mit UIRectFill(_:)
function UIKit
liefert eine UIRectFill(_:)
-Funktion. UIRectFill(_:)
hat die folgende Deklaration:
Füllt das angegebene Rechteck mit der aktuellen Farbe.
Der folgende Playground-Code zeigt, wie UIRectFill(_:)
:
CGRect
-Instanz mit einer UIColor
-Instanz innerhalb einer UIView
-Unterklasse mit CGContext
's fill(_:)
method CGContext
hat eine Methode namens fill(_:)
. fill(_:)
hat die folgende Deklaration:
Zeichnet den Bereich im bereitgestellten Rechteck mit der Füllfarbe im aktuellen Grafikzustand.
Der folgende Playground-Code zeigt, wie fill(_:)
:
Sie können Ihrer Ansicht auch einen CALayer als Unterebene hinzufügen. Fügen Sie CoreGraphics und QuartzCore-Frameworks hinzu und erstellen Sie in Ihrer drawRect-Methode ein CGRect mit dem gewünschten Formfaktor. Instanziieren Sie einen CALayer mit dem Rect und fügen Sie ihn mit [self.layer addSublayer: theLayer] zur Ebene der Ansicht hinzu. Bevor Sie es hinzufügen, verwenden Sie die Methode -setBackgroundColor: von CALayer.
Wenn dies in einem View Controller statt in einer View-Unterklasse geschieht, machen Sie dasselbe in der viewDidLoad-Methode.
Bryan
Überschreiben Sie die drawRect-Methode Ihrer UIView-Subklasse. Der folgende Code wird die obere Hälfte Ihrer Ansicht schwarz und die untere Hälfte Ihrer Ansicht rot machen.
%Vor%HINWEIS: Sie können die drawRect: -Methode auch nur überschreiben, wenn Sie eine UIView von einer Unterklasse ableiten. Aufgrund Ihrer Kommentaransicht habe ich das Gefühl, dass dies nicht das ist, was Sie tun.
Tags und Links ios uiview cgrect uibackgroundcolor