以UILabel舉例,效果圖如下:
方法一僅支持iOS11以上
方法一:
[_sleepStateLabel.layer setMasksToBounds:YES];
[_sleepStateLabel.layer setCornerRadius:12];
[_sleepStateLabel.layer setMaskedCorners:kCALayerMinXMinYCorner | kCALayerMaxXMaxYCorner];
方法二:
//設置左上與右下圓角(可自行編輯指定圓角位置)
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:_sleepStateLabel.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(12, 12)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = _sleepStateLabel.bounds;
maskLayer.path = maskPath.CGPath;
_sleepStateLabel.layer.mask = maskLayer;