UIView设置边框(整体设置和分开设置)

来源:互联网 发布:北京行知小学百度百科 编辑:程序博客网 时间:2024/06/05 15:12

在开发中为UIView设置边框是常常用到的功能,如果要为UIView四下都设置边框,最简单的方法是使用CALayer的border属性:

+(void)setViewBorder:(UIView *)view color:(UIColor *)color radius:(float)radius border:(float)border{    //设置layer    CALayer *layer=[view layer];    //是否设置边框以及是否可见    [layer setMasksToBounds:YES];    //设置边框圆角的弧度    [layer setCornerRadius:radius];    //设置边框线的宽    [layer setBorderWidth:border];    //设置边框线的颜色    [layer setBorderColor:[color CGColor]];}

但是在实际中往往需要灵活的设置某几条或者某一条边框,那么该怎么做呢?下面就是提供的方法:

typedef NS_ENUM(NSInteger, UIViewBorderLineType) {    UIViewBorderLineTypeTop,    UIViewBorderLineTypeRight,    UIViewBorderLineTypeBottom,    UIViewBorderLineTypeLeft,};
+(void)setViewBorder:(UIView *)view color:(UIColor *)color border:(float)border type:(UIViewBorderLineType)borderLineType{    CALayer *lineLayer = [CALayer layer];    lineLayer.backgroundColor = color.CGColor;    switch (borderLineType) {        case UIViewBorderLineTypeTop:{            lineLayer.frame = CGRectMake(0, 0, view.frame.size.width, border);            break;        }        case UIViewBorderLineTypeRight:{            lineLayer.frame = CGRectMake(view.frame.size.width, 0, border, view.frame.size.height);            break;        }        case UIViewBorderLineTypeBottom:{            lineLayer.frame = CGRectMake(0, view.frame.size.height, view.frame.size.width,border);            break;        }        case UIViewBorderLineTypeLeft:{            lineLayer.frame = CGRectMake(0, 0, border, view.frame.size.height);            break;        }                    default:{            lineLayer.frame = CGRectMake(0, 0, view.frame.size.width-42, border);            break;        }    }        [view.layer addSublayer:lineLayer];}

本质上也是实用UIView的layer,然后为其添加子layer。