borderColor für jede Ansicht (oder UIView-Unterklasse) kann auch mithilfe eines Storyboards mit ein wenig Codierung festgelegt werden. Dieser Ansatz kann sehr praktisch sein, wenn Sie die Rahmenfarbe für mehrere UI-Objekte festlegen.
Nachfolgend finden Sie die Schritte, wie Sie dies erreichen können:
- Erstellen Sie eine Kategorie für die CALayer-Klasse. Deklarieren Sie eine Eigenschaft vom Typ UIColor mit einem geeigneten Namen. Ich werde sie als borderUIColor bezeichnen .
- Schreiben Sie den Setter und Getter für diese Eigenschaft.
- Setzen Sie bei der 'Setter'-Methode einfach die Eigenschaft "borderColor" der Ebene auf den neuen CGColor-Farbwert.
- Geben Sie in der 'Getter'-Methode UIColor mit borderColor der Ebene zurück.
PS: Denken Sie daran, dass in Kategorien keine Eigenschaften gespeichert werden können. 'borderUIColor' wird als berechnete Eigenschaft verwendet, nur als Referenz, um das zu erreichen, worauf wir uns konzentrieren.
Bitte schauen Sie sich das folgende Codebeispiel an.
Ziel c:
Schnittstellendatei:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Implementierungsdatei:
#import "CALayer+BorderProperties.h"
@implementation CALayer (BorderProperties)
- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Swift 2.0:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.CGColor
}
get {
return UIColor(CGColor: self.borderColor!)
}
}
}
Gehen Sie schließlich zu Ihrem Storyboard / XIB und befolgen Sie die verbleibenden Schritte.
- Klicken Sie auf das Ansichtsobjekt, für das Sie die Rahmenfarbe festlegen möchten.
- Klicken Sie im Bereich "Dienstprogramm" (rechte Seite des Bildschirms) auf "Identitätsinspektor" (3. von links).
- Klicken Sie unter "Benutzerdefinierte Laufzeitattribute" auf die Schaltfläche "+", um einen Schlüsselpfad hinzuzufügen.
- Stellen Sie den Typ des Schlüsselpfads auf "Farbe".
- Geben Sie den Wert für den Schlüsselpfad als "layer.borderUIColor" ein. [Denken Sie daran, dass dies der Variablenname sein sollte, den Sie in der Kategorie deklariert haben, nicht borderColor, hier ist borderUIColor ].
- Wählen Sie schließlich die gewünschte Farbe.
Sie müssen den Eigenschaftswert layer.borderWidth auf mindestens 1 setzen, um die Rahmenfarbe anzuzeigen .
Erstellen und ausführen. Viel Spaß beim Codieren. :) :)