Próbuję utworzyć etykietę (lub jakikolwiek inny widok w tej sprawie) z jednym zaokrąglonym rogiem i obrysem/obramowaniem. Mogę osiągnąć dawny stosując następujący kod:Skrypt zamaskowany CALayer w iOS
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;
Który działa świetnie na zaokrąglonym narożniku, ale stosując następujący kod nie ma zastosowania skoku tak, jak chcę. Zamiast tego tworzy się czarny (lub cokolwiek innego, co backgroundColor
z ustawiono na) kwadratowych border.
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;
Wszelkie sugestie, w jaki sposób można zastosować dowolną kolorową udar, który następuje zamaskowaną ścieżkę?
Tego rodzaju prace, ale teraz tekst etykiety został pokryty warstwą "shape" :( –
OK Udało mi się sprawić, żeby działało, nakładając maskę na 'UIView' i dodając' UILabel' jako wyskok. Bardzo dziękuję :) –
StrokeLayer zakrywa etykietę, więc dodałem to, aby poprawić to. 'shape.fillColor = [UIColor clearColor] .CGColor' –