Est-il possible de contrôler les propriétés de bordure de UIView (couleur, épaisseur, etc...) directement à partir de générateur d’interface ou je peux le faire uniquement par programme ?
Réponses
Trop de publicités?En fait, vous pouvez définir des propriétés de couche d’un affichage par interface builder. Je sais que je peux mettre un calque borderWidth et cornerRadius dans xcode. borderColor ne fonctionne pas, probablement parce que la couche veut un CGColor au lieu d’un UIColor.
Vous devrez peut-être utiliser des chaînes au lieu de chiffres, mais ça marche !
Rich86Man la réponse est correcte, mais vous pouvez utiliser les catégories pour proxy propriétés telles que la couche.borderColor. (À partir de la ConventionalC CocoaPod)
CALayer+XibConfiguration.h:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer(XibConfiguration)
// This assigns a CGColor to borderColor.
@property(nonatomic, assign) UIColor* borderUIColor;
@end
CALayer+XibConfiguration.m:
#import "CALayer+XibConfiguration.h"
@implementation CALayer(XibConfiguration)
-(void)setBorderUIColor:(UIColor*)color
{
self.borderColor = color.CGColor;
}
-(UIColor*)borderUIColor
{
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Le résultat sera visible lors de l'exécution, pas dans Xcode.
Si vous voulez gagner du temps, il suffit d’utiliser deux `` sur le dessus de l’autre, celui de la couleur de la bordure sur le dos et celui en face de petit, donnant l’effet de bordure. Je ne pense pas que c’est une solution élégante non plus, mais si Apple fait un peu plus alors vous ne devriez pas faire cela.