1.实线,(下划线/删除线)
写一个新类
UnderLineLabel :
UILabel
- (void)drawRect:(CGRect)rect {
// Drawing code
[super drawRect:rect];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGSize fontSize =[self.text sizeWithFont:self.font
forWidth:self.frame.size.width
lineBreakMode:NSLineBreakByTruncatingTail];
//线颜色,此处颜色和字体一致
CGContextSetStrokeColorWithColor(ctx, self.textColor.CGColor); // set as the text's color
// 0.6f == 线宽
CGContextSetLineWidth(ctx, 0.6f);
//起点坐标
CGPoint leftPoint = CGPointMake(0,
self.frame.size.height/2);
//终点坐标
CGPoint rightPoint = CGPointMake(fontSize.width,
self.frame.size.height/2);
CGContextMoveToPoint(ctx, leftPoint.x, leftPoint.y);
CGContextAddLineToPoint(ctx, rightPoint.x, rightPoint.y);
CGContextStrokePath(ctx);
}
在需要的地方用
UnderLineLabel初始化生成即可.
2.虚线
首先要导入
此处 self是一个view
#import <QuartzCore/QuartzCore.h>
//虚线
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
[shapeLayer setBounds:self.bounds];
[shapeLayer setPosition:self.center];
[shapeLayer setFillColor:[[UIColor clearColor] CGColor]];
// 设置虚线颜色为black
[shapeLayer setStrokeColor:[[UIColor colorWithRed:223/255.0 green:223/255.0 blue:223/255.0 alpha:1.0f] CGColor]];
// 3.0f设置虚线的宽度
[shapeLayer setLineJoin:kCALineJoinRound];
// 3=线的宽度 1=每条线的间距
[shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:1],nil]];
// Setup the path
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 100, 67); //100 ,67 初始点 x,y
CGPathAddLineToPoint(path, NULL, 310,67); //67终点x,y
[shapeLayer setPath:path];
CGPathRelease(path);
//添加到容器中
[[self layer] addSublayer:shapeLayer];
此处 self是一个view