关闭

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

1984人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35206次
    • 积分:612
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:10篇
    • 译文:1篇
    • 评论:1条
    最新评论