borderColor su qualsiasi vista (o sottoclasse UIView) potrebbe anche essere impostato utilizzando lo storyboard con un po 'di codice e questo approccio potrebbe essere davvero utile se si imposta il colore del bordo su più oggetti dell'interfaccia utente.
Di seguito sono riportati i passaggi su come raggiungerlo,
- Creare una categoria sulla classe CALayer. Dichiara una proprietà di tipo UIColor con un nome adatto, la chiamerò borderUIColor .
- Scrivi il setter e il getter per questa proprietà.
- Nel metodo 'Setter' basta impostare la proprietà "borderColor" del layer sul nuovo valore CGColor dei colori.
- Nel metodo 'Getter' restituisce UIColor con borderColor del layer.
PS: ricorda, le categorie non possono avere proprietà memorizzate. 'borderUIColor' viene usato come proprietà calcolata, proprio come riferimento per ottenere ciò su cui ci stiamo concentrando.
Dai un'occhiata al seguente esempio di codice;
Obiettivo C:
File di interfaccia:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
File di implementazione:
#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!)
}
}
}
E infine vai allo storyboard / XIB, segui i passaggi rimanenti;
- Fare clic sull'oggetto Visualizza per il quale si desidera impostare Colore bordo.
- Fai clic su "Identity Inspector" (3 ° da sinistra) nel pannello "Utilità" (lato destro dello schermo).
- In "Attributi di runtime definiti dall'utente", fai clic sul pulsante "+" per aggiungere un percorso chiave.
- Impostare il tipo di percorso chiave su "Colore".
- Immettere il valore per il percorso chiave come "layer.borderUIColor". [Ricorda che questo dovrebbe essere il nome della variabile che hai dichiarato nella categoria, non borderColor qui è borderUIColor ].
- Finalmente ho scelto il colore che desideri.
Devi impostare il valore della proprietà layer.borderWidth su almeno 1 per vedere il colore del bordo.
Costruisci ed esegui. Happy Coding. :)