UIView设置圆角

来源:互联网 发布:小鱼儿网络 编辑:程序博客网 时间:2024/04/27 23:14

为UIView设置圆角是实际开发中常需要处理的问题,就UIView而言相关的api没有找到直接设置的方法;不过UIView是对CALayer的封装,设置CALayer圆角则可以出来相应的效果。下面介绍几种设置圆角的方法:

1、为UIView的所有角都设置圆角:

CALayer *layer=[view layer];//是否设置边框以及是否可见[layer setMasksToBounds:YES]; //设置边框圆角的弧度  [layer setCornerRadius:radius];


MasksToBounds必须设置成yes否则不能出现效果

2、为UIView的某个或者某几个角设置成圆角:

-(void)setRoundRadius:(UIView *)needView{    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:needView.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)];    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];    maskLayer.frame = needView.bounds;    maskLayer.path = maskPath.CGPath;    needView.layer.mask = maskLayer;}

其中needView表示需要设置圆角的UIView,byRoundingCorners可以做相应的组合,总的有下面几种:

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {    UIRectCornerTopLeft     = 1 << 0,    UIRectCornerTopRight    = 1 << 1,    UIRectCornerBottomLeft  = 1 << 2,    UIRectCornerBottomRight = 1 << 3,    UIRectCornerAllCorners  = ~0UL};

3、使用CoreGraphic自己画




0 0