48 votes

CALayer: ajoute une bordure uniquement d'un côté

Je peux ajouter une bordure à une CALayer de cette façon:

[webView.layer setBorderColor: [[UIColor colorWithRed:0.6 green:0.7 blue:0.2 alpha:1] CGColor]];
[webView.layer setBorderWidth: 2.75];   

Mais est-il possible d'ajouter une bordure à un seul côté? J'ai seulement besoin d'une bordure en bas. Ou puis-je atteindre avec d'autres propriétés, par exemple, de cadre, de limites, masque, ...?

enter image description here

Merci pour votre aide!


@Control-V

        UIWebView *webView = [[UIWebView alloc] init];
        CALayer *webViewLayer = webView.layer;

        // now you can do a lot of stuff like borders:
        [webViewLayer setBorderColor: [[UIColor greenColor] CGColor]];
        [webViewLayer setBorderWidth: 2.75];    

Jetez un oeil à la CALayer dokumentation: http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html

Et jetez un oeil ici: http://iphonedevelopertips.com/cocoa/add-rounded-corners-and-border-to-uiwebview.html

105voto

Kazzar Points 734

J'ai résolu de cette façon:

 leftScrollView.clipsToBounds = YES;

CALayer *rightBorder = [CALayer layer];
rightBorder.borderColor = [UIColor darkGrayColor].CGColor;
rightBorder.borderWidth = 1;
rightBorder.frame = CGRectMake(-1, -1, CGRectGetWidth(leftScrollView.frame), CGRectGetHeight(leftScrollView.frame)+2);

[leftScrollView.layer addSublayer:rightBorder];
 

14voto

adamsiton Points 2003

Le plus simple est d'ajouter une sous-couche qui va attirer l'sélective des frontières, mais il ya quelques choses à considérer lors du choix de cette solution, la plus grande assurer que les frontières de la sous-couche est toujours sur le dessus, et que les changements dans les frontières lorsque vous modifiez l'image de votre calque.

J'ai mis en place une goutte de solution open source qui prend soin de ces questions, et vous permettent de déclarer sélective des frontières comme ceci:

myView.borderDirection = AUIFlexibleBordersDirectionRight | AUIFlexibleBordersDirectionTop;

Vous pouvez obtenir le code, et lire un peu plus ici

7voto

xuzhe Points 3763

La propriété border ajoute toujours une bordure aux 4 côtés de votre vue. Vous pouvez créer votre propre méthode de dessin pour dessiner la bordure au bas de votre vue.

Mais pourquoi ne pas simplement ajouter une vue au-dessus de votre UIWebView pour qu’elle ressemble à une bordure?

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: