2011-09-22 2 views
1

Je sais en définissant les propriétés borderWidth et borderColor du calque d'un UIView, ce qui me permet de personnaliser toute la bordure. Mais maintenant, je veux juste changer un bord de la bordure, quelqu'un peut-il savoir comment faire?Comment personnaliser un seul bord d'un UIView?

+0

Je donnerais +1 si la réponse fonctionnait aussi avec des coins arrondis. J'essaie de rendre le bord supérieur plus clair d'un UIView et le bord inférieur plus sombre. – kris

Répondre

3

Je pense qu'une solution facile est d'ajouter une couche secondaire sur CALayer de vue pour simuler une frontière, comme:

float borderWidth = 5.0; 
CALayer *mockBorder = [CALayer layer]; 
[mockBorder setBorderColor:[[UIColor blueColor] CGColor]]; 
[mockBorder setBorderWidth:borderWidth]; 
[mockBorder setFrame:CGRectMake(-1.0 * borderWidth, 
           0.0, 
           yourView.frame.size.width + 2 * borderWidth, 
           yourView.frame.size.height + borderWidth)]; 
[[yourView layer] addSublayer:mockBorder]; 

L'échantillon simule ci-dessus une seule jusqu'à la frontière. En modifiant les paramètres dans CGRectMake vous pouvez créer diverses combinaisons telles que up + left, up + down, etc.

N'oubliez pas de mettre à jour le cadre de la sous-couche lorsque l'écran tourne.

Questions connexes