自己正在用的Code
@interface UIView (CornerRadius)
- (void)viewCornerRaidus:(CGFloat)raidus;
- (void)viewCornerRaidusType:(CGFloat)raidus roundingCorners:(UIRectCorner)corners;
@end
@implementation UIView (CornerRadius)
- (void)viewCornerRaidus:(CGFloat)raidus{
[self viewCornerRaidusType:raidus roundingCorners:UIRectCornerAllCorners];
}
- (void)viewCornerRaidusType:(CGFloat)raidus roundingCorners:(UIRectCorner)corners{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(raidus, raidus)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;
}
@end
</br>
</br>
</br>
参考别人:
圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。但很多人并不清楚如何设置圆角的正确方式和原理。设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点讨论的话题。我查阅了一些现有的资料,收获良多的同时也发现了一些误导人错误。本文总结整理了一些知识点,概括如下:
设置圆角的正确姿势及其原理
设置圆角的性能损耗
其他设置圆角的方法,以及最优选择
我为本文制作了一个 demo,读者可以在我的 github 上 clone 下来:CornerRadius,如果觉得有帮助还望给个star以示支持。项目由 Swift 实现,但请务必相信我即使你只会 Objective-C,也可以看懂它。因为其中的关键知识与 Swift 无关。
...........