Schlaganfall maskierte CALayer in iOS

Ich versuche, erstellen Sie ein label (oder jede andere Ansicht, für diese Angelegenheit) mit einer abgerundeten Ecke und ein Hub/Grenze. Ich kann erreichen die ehemaligen mit dem folgenden code:

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.label.bounds
                                      byRoundingCorners:UIRectCornerBottomRight
                                            cornerRadii:CGSizeMake(16.0f, 16.0f)];

CAShapeLayer *shape = [CAShapeLayer layer];
shape.frame = self.label.bounds;
shape.path = maskPath.CGPath;

self.label.layer.mask = shape;

Die großen Werke für die abgerundete Ecke, aber mit dem folgenden code wird nicht für den Schlaganfall, wie ich will. Stattdessen produzieren Sie einen schwarzen (oder wie auch immer die backgroundColor von self.label eingestellt ist) Platz Grenze.

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.label.bounds
                                      byRoundingCorners:UIRectCornerBottomRight
                                            cornerRadii:CGSizeMake(16.0f, 16.0f)];

CAShapeLayer *shape = [CAShapeLayer layer];
shape.frame = self.label.bounds;
shape.path = maskPath.CGPath;

//Add stroke
shape.borderWidth = 1.0f;
shape.borderColor = [UIColor whiteColor].CGColor;

self.label.backgroundColor = [UIColor blackColor];
self.label.layer.mask = shape;

Irgendwelche Vorschläge, wie ich mich bewerben kann eine beliebige farbige Kontur folgt, dass die maskierten Pfad?

InformationsquelleAutor der Frage Steve Wilford | 2013-08-21

Schreibe einen Kommentar