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

发布于 2024-12-04 00:11:11 字数 217 浏览 1 评论 0原文

我一直试图在多行标签下划线,但我无法做到这一点。

我已参考此链接,但这似乎对我没有帮助。

不使用 NSAttributedString 和 coreText 如何完成?

I have been trying to underline a multiline label but I am not able to do that.

I have referred to this link but this doesn't seem to help me.

How can be done without using NSAttributedString and coreText?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简单 2024-12-11 00:11:11

您可以使用 GitHub 中的一些开源项目,它们类似于 UILabel,但支持属性字符串:

TTTAttributedLabelOHAttributedLabel

You could use some of these open source projects from GitHub which are like UILabel's but support an attributed string:

TTTAttributedLabel or OHAttributedLabel

哎呦我呸! 2024-12-11 00:11:11

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

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

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

    CGContextSetLineWidth(ctx, 3);

  6. 使用此代码绘制线条。
    <代码>

    <代码>

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

希望以上收集的代码段对您有所帮助......

Following steps can be helpful.

  1. Extend UILable OR UIView.
  2. Implement - (void)drawRect:(CGRect)rect
  3. In that method get context using `CGContextRef ctx = UIGraphicsGetCurrentContext();
  4. Set text you want to set using this.

    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));
    
  5. Set Line using this code.

    CGContextSetLineWidth(ctx, 3);

  6. Draw line using this code.

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

Hope above collected segments of code helps you....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文