今天學(xué)了一種讓圓角部分圓弧化的方法,就是使用UIBezierPath;如果是讓所有的角都圓弧化,很簡(jiǎn)單,只要設(shè)置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;
}
我自己定義了一個(gè)單例類,寫了一個(gè)方法,實(shí)現(xiàn)如上.
其中rectCorner 就是定義是哪些角需要圓角化,有
* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners
見名知意,不多贅述.
cornerRadii用來定義圓滑的弧度.