2011-08-16 59 views
1

是否有简单的方式在iOS 4中强调文本?在IB可能吗?在此先感谢...iPhone:下划线文字

+0

更具体的你想要做什么。 –

+0

我绝对不同意你的看法。问题很清楚... – Jim

+0

[下划线文本在UIlabel]中可能的重复(http://stackoverflow.com/questions/2711297/underline-text-in-uilabel) –

回答

4

据我所知,你不能强调文字。

您可以通过(例如)将UImageView或常规View放置在下方,并使用与文本相同的颜色来“伪造”它。你可以使用穿透等,但不能强调。

编辑: 虽然你可以用这种方法来强调你的UILabel。你可以使用自定义的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]; 
} 
+2

他可以强调。通过子类uilabel –

3

只要继承的UILabel和drawRect中绘制你的文字只是绘制文本下一个简单的行之后。看看StrikeUILabel它有一些错误,但你可以从那个类开始。

0

NSMutableAttributedString/NSAttributedString允许您创建具有各种丰富属性(如字体,颜色,字体样式(包括下划线))的文本。对于一般信息请点击此链接..

Introduction to Attributed String Programming Guide

具体强调文本,该链接可以帮助.. Changing an Attributed String

+0

与Mac OS X不同,在iOS中不能绘制属性字符串。 – titaniumdecoy

+0

IOS 6现在已将字符串归因于: http://stackoverflow.com/questions/15328704/how-can-i-underline-text-in-ios-6 – Refactor

0

有时候我更喜欢使用的UILabel作为下划线与下划线颜色,背景不文本,高度1或2像素和宽度等于文本要加下划线...