Hintergrundfarbe nur für einen Teil von UIView festlegen

8

Ich möchte, dass die Unterseite (nicht ganz die Hälfte) meiner UIView eine andere Farbe hat als die oberste.

Ich frage mich, ob ich ein CGRect erstellen und das dann färben soll? Ist das auf dem richtigen Weg?

%Vor%     
AllieCat 05.08.2013, 17:27
quelle

6 Antworten

8

Ja, da Sie die drawRect-Methode bereits überschreiben, ist dies ausreichend.

%Vor%

Ändern Sie die Werte innerhalb der Frames wie gewünscht.

    
Lucas Eduardo 05.08.2013, 17:33
quelle
2

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.

# 1. Zeichnen und füllen Sie eine angegebene CGRect -Instanz mit einer UIColor -Instanz in einer UIView -Unterklasse mit UIRectFill(_:) function

UIKit liefert eine UIRectFill(_:) -Funktion. UIRectFill(_:) hat die folgende Deklaration:

%Vor%
  

Füllt das angegebene Rechteck mit der aktuellen Farbe.

Der folgende Playground-Code zeigt, wie UIRectFill(_:) :

verwendet wird %Vor%

# 2. Zeichnen und füllen Sie eine angegebene 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:

%Vor%
  

Zeichnet den Bereich im bereitgestellten Rechteck mit der Füllfarbe im aktuellen Grafikzustand.

Der folgende Playground-Code zeigt, wie fill(_:) :

verwendet wird %Vor%     
Imanou Petit 21.08.2017 12:47
quelle
1

Sie können diesen Code verwenden. Bitte ändern Sie den CGRect nach Ihren Wünschen.

%Vor%

Der folgende Link kann Ihnen mehr helfen. Ссылка

    
shuvo 05.08.2013 18:35
quelle
0

Sie können einen CGRect ausführen und einen Teil eines zu füllenden Teils abschneiden.

Aber warum werden zwei verschiedene UIViews nicht nebeneinander platziert?

Bharat

    
slysid 05.08.2013 17:31
quelle
0

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

    
Craimasjien 05.08.2013 17:56
quelle
0

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

    
dana0550 05.08.2013 17:47
quelle