iOS下划线/虚线/删除线等等

来源:互联网 发布:淘宝追评怎么修改 编辑:程序博客网 时间:2024/06/06 06:29

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.虚线

首先要导入

#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


0 0
原创粉丝点击