194 votes

Est-il possible de définir les propriétés de bordure UIView de générateur d’interface ?

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 ?

402voto

Rich86man Points 2008

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 !

example

187voto

Peter DeWeese Points 10185

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

Interface Builder

Le résultat sera visible lors de l'exécution, pas dans Xcode.

7voto

Zayin Krige Points 1029

tandis que ceci peut définir les propriétés, il ne reflète pas réellement à l’IB. Donc si vous êtes essentiellement écrivez du code dans l’IB, vous pourriez aussi bien puis faire dans votre code source

4voto

Matt Quiros Points 2236

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X