Как вы подчеркиваете текст в приложении для iPhone - PullRequest
1 голос
/ 08 февраля 2011

Как подчеркнуть текст в iphone (цель c) ???

Ответы [ 4 ]

3 голосов
/ 08 февраля 2011

Для UILabel нет простого подчеркивания.Таким образом, есть два подхода:

  1. Использование UIWebView, где вы можете подчеркнуть нужный текст с помощью <span style="text-decoration:underline">underlined html text<span>.
  2. Custom UILabel - это хорошая идея для короткого одиночногоэтикеткиВам нужно создать класс CUILabel, который наследует UILabel, и заменить его drawRect метод в разделе @implementation следующим кодом:

`

- (void)drawRect:(CGRect)rect {
  CGContextRef ctx = UIGraphicsGetCurrentContext();
  CGContextSetRGBStrokeColor(ctx, 0.0f/255.0f, 0.0f/255.0f, 255.0f/255.0f, 1.0f); // Your underline color
  CGContextSetLineWidth(ctx, 1.0f);

  UIFont *font = [UIFont systemFontOfSize:16.0f];
  CGSize constraintSize = CGSizeMake(MAXFLOAT, MAXFLOAT);
  CGSize labelSize;
  labelSize = [self.text sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];  

  CGContextMoveToPoint(ctx, 0, self.bounds.size.height - 1);
  CGContextAddLineToPoint(ctx, labelSize.width + 10, self.bounds.size.height - 1);

  CGContextStrokePath(ctx);

  [super drawRect:rect];  
}
1 голос
/ 06 января 2012

В дополнение к ответу NR4TR другим вариантом будет использование CoreText.

0 голосов
/ 01 января 2013

вы можете использовать веб-просмотр и пометить флажок "ссылки" в Обнаружении и дать HTML-текст

    htmlContentTxt = @"<a title="XYZ" href="http://www.XYZ.com">www.XYZ.com</a>";
    [webview loadHTMLString:htmlContentTxt baseURL:nil]; 
0 голосов
/ 12 июля 2012

Я изменил код NR4TR, чтобы сделать его более автоматическим:

#import "UILabelUnderlined.h"

@implementation UILabelUnderlined

@synthesize underlineWidth;

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
    self.underlineWidth = 1.0f;
}
return self;
}

- (void)drawRect:(CGRect)rect {
CGContextRef ctx = UIGraphicsGetCurrentContext();

CGFloat red;
CGFloat green;
CGFloat blue;
CGFloat alpha;
[self.textColor getRed:&red green:&green blue:&blue alpha:&alpha];

CGContextSetRGBStrokeColor(ctx, red, green, blue, 1.0f); // Your underline color
CGContextSetLineWidth(ctx, self.underlineWidth);

CGSize constraintSize = CGSizeMake(MAXFLOAT, MAXFLOAT);
CGSize labelSize;
labelSize = [self.text sizeWithFont:self.font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];  

CGContextMoveToPoint(ctx, 10, self.bounds.size.height - 1);
CGContextAddLineToPoint(ctx, labelSize.width + 10, self.bounds.size.height - 1);

CGContextStrokePath(ctx);

[super drawRect:rect];  
}

@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...