宣传推广网络推广,深圳企业股权优化,wap网站开发用什么语言,知乎app开发公司本文主要给大家介绍了关于iOS如何给View添加指定位置边框线的相关内容#xff0c;分享出来供大家参考学习#xff0c;下面话不多说了#xff0c;来一起看看详细的介绍吧。略微封装了一下#xff0c;给View添加指定位置的边框线#xff0c;其中位移枚举的使用询问了哥们儿分享出来供大家参考学习下面话不多说了来一起看看详细的介绍吧。略微封装了一下给View添加指定位置的边框线其中位移枚举的使用询问了哥们儿总算搞定示例代码封装一直接封装成了一个方法/// 边框类型(位移枚举)typedef NS_ENUM(NSInteger, UIBorderSideType) {UIBorderSideTypeAll 0,UIBorderSideTypeTop 1 0,UIBorderSideTypeBottom 1 1,UIBorderSideTypeLeft 1 2,UIBorderSideTypeRight 1 3,};/**设置view指定位置的边框param originalView 原viewparam color 边框颜色param borderWidth 边框宽度param borderType 边框类型 例子: UIBorderSideTypeTop|UIBorderSideTypeBottomreturn view*/- (UIView *)borderForView:(UIView *)originalView color:(UIColor *)color borderWidth:(CGFloat)borderWidth borderType:(UIBorderSideType)borderType {if (borderType UIBorderSideTypeAll) {originalView.layer.borderWidth borderWidth;originalView.layer.borderColor color.CGColor;return originalView;}/// 线的路径UIBezierPath * bezierPath [UIBezierPath bezierPath];/// 左侧if (borderType UIBorderSideTypeLeft) {/// 左侧线路径[bezierPath moveToPoint:CGPointMake(0.0f, originalView.frame.size.height)];[bezierPath addLineToPoint:CGPointMake(0.0f, 0.0f)];}/// 右侧if (borderType UIBorderSideTypeRight) {/// 右侧线路径[bezierPath moveToPoint:CGPointMake(originalView.frame.size.width, 0.0f)];[bezierPath addLineToPoint:CGPointMake( originalView.frame.size.width, originalView.frame.size.height)];}/// topif (borderType UIBorderSideTypeTop) {/// top线路径[bezierPath moveToPoint:CGPointMake(0.0f, 0.0f)];[bezierPath addLineToPoint:CGPointMake(originalView.frame.size.width, 0.0f)];}/// bottomif (borderType UIBorderSideTypeBottom) {/// bottom线路径[bezierPath moveToPoint:CGPointMake(0.0f, originalView.frame.size.height)];[bezierPath addLineToPoint:CGPointMake( originalView.frame.size.width, originalView.frame.size.height)];}CAShapeLayer * shapeLayer [CAShapeLayer layer];shapeLayer.strokeColor color.CGColor;shapeLayer.fillColor [UIColor clearColor].CGColor;/// 添加路径shapeLayer.path bezierPath.CGPath;/// 线宽度shapeLayer.lineWidth borderWidth;[originalView.layer addSublayer:shapeLayer];return originalView;}封装二封装成了类别.h内容#import typedef NS_OPTIONS(NSUInteger, UIBorderSideType) {UIBorderSideTypeAll 0,UIBorderSideTypeTop 1 0,UIBorderSideTypeBottom 1 1,UIBorderSideTypeLeft 1 2,UIBorderSideTypeRight 1 3,};interface UIView (BorderLine)- (UIView *)borderForColor:(UIColor *)color borderWidth:(CGFloat)borderWidth borderType:(UIBorderSideType)borderType;end.m内容#import UIViewBorderLine.himplementation UIView (BorderLine)- (UIView *)borderForColor:(UIColor *)color borderWidth:(CGFloat)borderWidth borderType:(UIBorderSideType)borderType {if (borderType UIBorderSideTypeAll) {self.layer.borderWidth borderWidth;self.layer.borderColor color.CGColor;return self;}/// 左侧if (borderType UIBorderSideTypeLeft) {/// 左侧线路径[self.layer addSublayer:[self addLineOriginPoint:CGPointMake(0.f, 0.f) toPoint:CGPointMake(0.0f, self.frame.size.height) color:color borderWidth:borderWidth]];}/// 右侧if (borderType UIBorderSideTypeRight) {/// 右侧线路径[self.layer addSublayer:[self addLineOriginPoint:CGPointMake(self.frame.size.width, 0.0f) toPoint:CGPointMake( self.frame.size.width, self.frame.size.height) color:color borderWidth:borderWidth]];}/// topif (borderType UIBorderSideTypeTop) {/// top线路径[self.layer addSublayer:[self addLineOriginPoint:CGPointMake(0.0f, 0.0f) toPoint:CGPointMake(self.frame.size.width, 0.0f) color:color borderWidth:borderWidth]];}/// bottomif (borderType UIBorderSideTypeBottom) {/// bottom线路径[self.layer addSublayer:[self addLineOriginPoint:CGPointMake(0.0f, self.frame.size.height) toPoint:CGPointMake( self.frame.size.width, self.frame.size.height) color:color borderWidth:borderWidth]];}return self;}- (CAShapeLayer *)addLineOriginPoint:(CGPoint)p0 toPoint:(CGPoint)p1 color:(UIColor *)color borderWidth:(CGFloat)borderWidth {/// 线的路径UIBezierPath * bezierPath [UIBezierPath bezierPath];[bezierPath moveToPoint:p0];[bezierPath addLineToPoint:p1];CAShapeLayer * shapeLayer [CAShapeLayer layer];shapeLayer.strokeColor color.CGColor;shapeLayer.fillColor [UIColor clearColor].CGColor;/// 添加路径shapeLayer.path bezierPath.CGPath;/// 线宽度shapeLayer.lineWidth borderWidth;return shapeLayer;}end用法UIView *testView [[UIView alloc] initWithFrame:CGRectMake(80.0f, 80.0f, 200.0f, 100.0f)];testView.backgroundColor [UIColor lightGrayColor];[self.view addSubview:testView];[self borderForView:testView color:[UIColor redColor] borderWidth:1.0f borderType:UIBorderSideTypeTop | UIBorderSideTypeBottom];效果不足之处,边框线过宽的话交界处会有留白ps:注意需要先把你的view加载在父view上[self.view addSubview:testView]; 之后再设置边框否则可能会不起作用的