如何在不使用CoreText的情况下为多行标签绘制下划线?

时间:2011-09-09 05:30:47

标签: iphone objective-c core-graphics uilabel underline

我一直试图强调多行标签,但我无法做到这一点。

我已提到to this link,但这似乎对我没有帮助。

如何在不使用NSAttributedString和coreText的情况下完成?

2 个答案:

答案 0 :(得分:2)

您可以使用GitHub中的一些开源项目,例如UILabel,但支持属性字符串:

TTTAttributedLabelOHAttributedLabel

答案 1 :(得分:1)

以下步骤可能会有所帮助。

  1. 扩展UILable OR UIView。
  2. 实施- (void)drawRect:(CGRect)rect
  3. 在该方法中使用`CGContextRef ctx = UIGraphicsGetCurrentContext();
  4. 获取上下文
  5. 使用此设置您要设置的文本。

    CGContextSetRGBFillColor(context,1.0, 0.0, 0.0, 1.0);
    CGContextSetTextMatrix(context,CGAffineTransformMakeTranslation(0,pageSize.height));
    CGContextSetTextDrawingMode(context, kCGTextFill);
    CGContextSelectFont(context, "Helvetica", 30, kCGEncodingMacRoman);
    char *str=(char*)[@"TEXT" UTF8String];
    CGContextShowTextAtPoint(context,476/2-200,673/2+100,str,strlen(str));
    
  6. 使用此代码设置行。

    CGContextSetLineWidth(ctx, 3);

  7. 使用此代码绘制线条。

    CGContextBeginPath(ctx);
    CGContextMoveToPoint(ctx, thisX, thisY);
    CGContextAddLineToPoint(ctx, thatX,thatY);
    CGContextStrokePath(ctx);

  8. 希望以上收集的代码段可以帮助你......