borderColor sur n'importe quelle vue (ou sous-classe UIView) peut également être définie à l'aide du storyboard avec un peu de codage et cette approche peut être très pratique si vous définissez la couleur de la bordure sur plusieurs objets d'interface utilisateur.
Voici les étapes pour y parvenir,
- Créez une catégorie sur la classe CALayer. Déclarez une propriété de type UIColor avec un nom approprié, je la nommerai borderUIColor .
- Écrivez le setter et le getter pour cette propriété.
- Dans la méthode 'Setter', définissez simplement la propriété "borderColor" du calque sur la nouvelle valeur CGColor de couleurs.
- Dans la méthode 'Getter', retournez UIColor avec borderColor du calque.
PS: rappelez-vous, les catégories ne peuvent pas avoir de propriétés stockées. 'borderUIColor' est utilisé comme une propriété calculée, juste comme une référence pour réaliser ce sur quoi nous nous concentrons.
Veuillez consulter l'exemple de code ci-dessous;
Objectif c:
Fichier d'interface:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Fichier d'implémentation:
#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!)
}
}
}
Et enfin allez sur votre storyboard / XIB, suivez les étapes restantes;
- Cliquez sur l'objet View pour lequel vous souhaitez définir la couleur de la bordure.
- Cliquez sur «Inspecteur d'identité» (3e à partir de la gauche) dans le panneau «Utilitaire» (côté droit de l'écran).
- Sous "Attributs d'exécution définis par l'utilisateur", cliquez sur le bouton "+" pour ajouter un chemin de clé.
- Définissez le type de chemin de clé sur "Couleur".
- Entrez la valeur du chemin de clé sous la forme "layer.borderUIColor". [Souvenez-vous que cela devrait être le nom de la variable que vous avez déclaré dans la catégorie, pas borderColor ici c'est borderUIColor ].
- Enfin, choisissez la couleur que vous voulez.
Vous devez définir la valeur de la propriété layer.borderWidth sur au moins 1 pour voir la couleur de la bordure.
Construisez et exécutez. Codage heureux. :)