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

  • 相关阅读:
    Android 如何处理崩溃的异常
    体验下Xcode5与ios7
    IOS 改变导航栏返回按钮的标题
    android之HttpURLConnection
    android异步加载图片
    android 从服务器上获取APK下载安装
    android AsyncTask异步下载并更新进度条
    android 四种堆状态
    Windows Azure 的开源 DNA
    mysql 只给更新表的某个字段的授权
  • 原文地址:https://www.cnblogs.com/greywolf/p/2837556.html
Copyright © 2011-2022 走看看