今天學了一種讓圓角部分圓弧化的方法,就是使用UIBezierPath;如果是讓所有的角都圓弧化,很簡單,只要設置View的layer的cornerRadius就行了.
而今天要說的UIBezierPath方法是一種比較優(yōu)雅的方法,這是我在一片博客上看見的,感謝作者,博客原文在這里.
-(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;
}
我自己定義了一個單例類,寫了一個方法,實現(xiàn)如上.
其中rectCorner 就是定義是哪些角需要圓角化,有
* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners
見名知意,不多贅述.
cornerRadii用來定義圓滑的弧度.