我必须只为UILabel制作弯曲的前两个角,所以我在经过一番探索后就这样做了。
UIBezierPath *maskPath;
maskPath = [UIBezierPath bezierPathWithRoundedRect:label.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(8.0, 8.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = label.bounds;
maskLayer.path = maskPath.CGPath;
label.layer.mask = maskLayer;
这样做有效吗?在他们提到的一个论坛中,为了有效的目的,不要多次使用它。如果是这样我该怎么办?我需要在很少的地方。感谢名单。
答案 0 :(得分:0)
这样做非常好 - 与创建可比较大小的位图并在其上绘制几条曲线相比,它不再是资源密集型的。当他们说不要多次使用它时,它们意味着在对象的生命周期内不要多次使用它(即在加载它时只调用一次)。您可以将此用于应用中的每个标签(例如,覆盖initWithFrame:
),您就可以了。