Come ha fatto notare Bogdan, è vero che non è possibile trovare la proprietà layer.borderColor nello storyboard poiché si tratta di una cosa del tempo di esecuzione.
Tuttavia è ancora possibile impostare borderColor senza utilizzare IB_DESIGNABLE, su qualsiasi vista (o sottoclasse UIView) con un po 'di codifica.
Qui di seguito sono i passi come raggiungerlo,
- creare una categoria sulla classe di CALayer. Dichiarare una proprietà di tipo UIColor con un nome appropriato, lo chiamerò come borderUIColor.
- Scrivi il setter e il getter per questa proprietà.
- Nel metodo "Setter" è sufficiente impostare la proprietà "borderColor" del layer sul nuovo valore CGColor dei colori.
- Nel metodo 'Getter' restituisce UIColor con borderColor di livello.
P.S: ricordare che le categorie non possono avere proprietà memorizzate. 'borderUIColor' viene utilizzato come proprietà calcolata, proprio come riferimento per ottenere ciò su cui ci stiamo concentrando.
Si prega di dare un'occhiata al seguente codice di esempio;
Objective C:
Interface File:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Attuazione File:
#import "CALayer+BorderProperties.h"
@implementation CALayer (BorderProperties)
- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Swift 3.1:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
E infine andare al tuo storyboard/XIB, seguire i passaggi rimanenti;
- Fare clic sull'oggetto Visualizza per il quale si desidera impostare Colore bordo.
- Fare clic su "Identity Inspector" (3 ° da sinistra) nel pannello "Utility" (lato destro dello schermo).
- In "Attributi runtime definiti dall'utente", fare 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].
- Infine, scegli il colore che desideri.
Edit: Hai per impostare il valore layer.borderWidth proprietà per almeno 1 per vedere il colore del bordo.
Build and Run. Happy Coding. :)
fonte
2015-12-14 19:44:50
Si può vedere [Come aggiungi bordo nello storyboard] (http://stackoverflow.com/questions/12301256/is-it-possible-to-set-uiview-border-properties-from-interface-builder/ 30348021 # 30348021) – iHulk