iOS开发:自定义带下划线文本的UIButton

Uiunderlinedbutton.h代码

  1. @interface UIUnderlinedButton : UIButton { 
  2. + (UIUnderlinedButton *) underlinedButton; 
  3. @end 

Uiunderlinedbutton.m代码

  1. @implementation UIUnderlinedButton 
  2.  
  3. + (UIUnderlinedButton*) underlinedButton { 
  4. UIUnderlinedButton* button = [[UIUnderlinedButton alloc] init]; 
  5. return [button autorelease]; 
  6.  
  7. - (void) drawRect:(CGRect)rect { 
  8. CGRect textRect = self.titleLabel.frame; 
  9.  
  10. // need to put the line at top of descenders (negative value) 
  11. CGFloat descender = self.titleLabel.font.descender; 
  12.  
  13. CGContextRef contextRef = UIGraphicsGetCurrentContext(); 
  14.  
  15. // set to same colour as text 
  16. CGContextSetStrokeColorWithColor(contextRef, self.titleLabel.textColor.CGColor); 
  17.  
  18. CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender); 
  19.  
  20. CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender); 
  21.  
  22. CGContextClosePath(contextRef); 
  23. CGContextDrawPath(contextRef, kCGPathStroke); 
  24. @end 

 

posted on 2014-11-20 01:32  lgphp  阅读(402)  评论(0编辑  收藏  举报