iOS---UILabel使用drawRect添加下划线

  1. - (void)drawRect:(CGRect)rect  
  2. {  
  3.     [super drawRect:rect];  
  4.     CGContextRef ctx = UIGraphicsGetCurrentContext();  
  5.     CGSize fontSize =[self.text sizeWithFont:self.font  
  6.                                     forWidth:self.bounds.size.width  
  7.                                lineBreakMode:UILineBreakModeTailTruncation];  
  8.       
  9.       
  10.     // Get the fonts color.  
  11.       
  12.     const float * colors = CGColorGetComponents(self.textColor.CGColor);  
  13.     // Sets the color to draw the line  
  14.     CGContextSetRGBStrokeColor(ctx, colors[0], colors[1], colors[2], 1.0f); // Format : RGBA  
  15.   
  16.     // Line Width : make thinner or bigger if you want  
  17.     CGContextSetLineWidth(ctx, 1.0f);  
  18.       
  19.     // Calculate the starting point (left) and target (right)  
  20.     CGPoint l = CGPointMake(0,  
  21.                             self.frame.size.height/2.0 +fontSize.height/2.0);  
  22.       
  23.     CGPoint r = CGPointMake(fontSize.width,  
  24.                             self.frame.size.height/2.0 + fontSize.height/2.0);  
  25.       
  26.       
  27.     // Add Move Command to point the draw cursor to the starting point  
  28.     CGContextMoveToPoint(ctx, l.x, l.y);  
  29.       
  30.     // Add Command to draw a Line  
  31.     CGContextAddLineToPoint(ctx, r.x, r.y);  
  32.       
  33.       
  34.     // Actually draw the line.  
  35.     CGContextStrokePath(ctx);  
  36.       
  37.     // should be nothing, but who knows...  
  38.     [super drawRect:rect];     
  39.   

你可能感兴趣的:(ios,UILabel,下划线,drawRect,CGContextRef)