Tôi đang cố tạo nhãn (hoặc bất kỳ chế độ xem nào khác cho vấn đề đó) với một góc tròn và đường viền/đường viền. Tôi có thể đạt được bằng cách sử dụng mã sau đây:Stroke đeo mặt nạ CALayer trong 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;
Công trình nào tuyệt vời cho góc tròn, nhưng sử dụng mã sau không áp dụng theo cách tôi muốn. Thay vào đó, hãy tạo màu đen (hoặc bất kỳ số nào là backgroundColor
của self.label
được đặt thành) vuông đường viền.
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;
Bất kỳ đề xuất nào về cách tôi có thể áp dụng nét màu tùy ý theo đường dẫn được che dấu?
loại Đó là công trình nhưng bây giờ văn bản của nhãn đã được bao phủ bởi lớp 'shape': ( –
OK) Tôi đã quản lý để làm cho nó hoạt động bằng cách áp dụng mặt nạ cho một' UIView' và thêm 'UILabel' như là một subview. Cảm ơn rất nhiều :) –
StrokeLayer bao gồm nhãn vì vậy tôi đã thêm điều này để sửa lỗi đó lên 'shape.fillColor = [UIColor clearColor] .CGColor' –