今天学了一种让圆角部分圆弧化的方法,就是使用UIBezierPath;如果是让所有的角都圆弧化,很简单,只要设置View的layer的cornerRadius就行了.
而今天要说的UIBezierPath方法是一种比较优雅的方法,这是我在一片博客上看见的,感谢作者,博客原文在这里.
-(UIView*)viewForRoundingsChangeWith:(UIView*)view byRoundingCorners:(UIRectCorner)rectCorner cornerRadii:(CGSize)cornerRadii
{
UIBezierPath*maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:rectCorner cornerRadii:cornerRadii];
CAShapeLayer*maskLayer = [[CAShapeLayer alloc]init];
maskLayer.frame= view.bounds;
maskLayer.path= maskPath.CGPath;
view.layer.mask= maskLayer;
returnview;
}
我自己定义了一个单例类,写了一个方法,实现如上.
其中rectCorner 就是定义是哪些角需要圆角化,有
* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners
见名知意,不多赘述.
cornerRadii用来定义圆滑的弧度.
网友评论