zoukankan      html  css  js  c++  java
  • UILabel里字体带下划线2

    #import <Foundation/Foundation.h>
    @interface UnderlineUILabel : UILabel 
    {

    }

    @end

    #import "UnderlineUILabel.h"
    #import<QuartzCore/QuartzCore.h>

    @implementation UnderlineUILabel

    -(id)initWithFrame:(CGRect)frame
    {
    if(self = [super initWithFrame:frame])
    {
    }
    return self;
    }
    -(void)drawRect:(CGRect)rect 
    {
    [super drawRect:rect];
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGSize fontSize =[self.text sizeWithFont:self.font 
           forWidth:self.bounds.size.width
           lineBreakMode:UILineBreakModeTailTruncation];


           
    // Get the fonts color. 
    const float * colors = CGColorGetComponents([UIColor blueColor].CGColor);
    // Sets the color to draw the line
    CGContextSetRGBStrokeColor(ctx, colors[0], colors[1], colors[2], 1.0f); // Format : RGBA

    // Line Width : make thinner or bigger if you want
    CGContextSetLineWidth(ctx, 1.0f);

    // Calculate the starting point (left) and target (right)
    CGPoint l = CGPointMake(self.frame.size.width/2.0 - fontSize.width/2.0, 
              self.frame.size.height/2.0 +fontSize.height/2.0);
    CGPoint r = CGPointMake(self.frame.size.width/2.0 + fontSize.width/2.0, 
             self.frame.size.height/2.0 + fontSize.height/2.0);


    // Add Move Command to point the draw cursor to the starting point
    CGContextMoveToPoint(ctx, l.x, l.y);

    // Add Command to draw a Line
    CGContextAddLineToPoint(ctx, r.x, r.y);


    // Actually draw the line.
    CGContextStrokePath(ctx);

    // should be nothing, but who knows...
    [super drawRect:rect];   
    }

    @end

  • 相关阅读:
    docker mysql8 phpmyadmin
    linux 压缩与解压缩
    Ubuntu添加开机自动启动程序的方法
    Linux基本命令集合
    linux下使用supervisor启动.net core mvc website的配置
    小修改,让mvc的验证锦上添点花(2)
    小修改,让mvc的验证锦上添点花(1)
    java 基础面试
    redis 面试题
    springMVC 面试题整理
  • 原文地址:https://www.cnblogs.com/greywolf/p/2837556.html
Copyright © 2011-2022 走看看