如何更改标签中特定文本的属性

时间:2015-12-26 03:22:30

标签: ios xcode text label

我有一个标签,我以编程方式设置标签的文本。我想将其中一个单词设置为粗体,其余正常。但是,我无法控制文本的属性。例如,我想要这个"这是示例"但我只能做到这一点"这是一个例子"。

4 个答案:

答案 0 :(得分:2)

试试这个:

    NSString *text = @"This is an example";
    NSString *textBold = @"example";

    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
    [attributedString beginEditing];
    [attributedString addAttribute:NSFontAttributeName
                             value:[UIFont boldSystemFontOfSize:20.0f]
                             range:[text rangeOfString:textBold]];

    [attributedString endEditing];
    [labelObj setAttributedText:attributedString];

答案 1 :(得分:0)

查看标签的attributedText属性。它允许您使用NSAttributedString指定样式文本。解释如何构建NSAttributedString超出了SO答案的范围,但您应该能够在Xcode帮助系统和在线中找到充足的信息。

答案 2 :(得分:0)

让我向您展示一下关于attributionText的演示。

enter image description here

 NSDictionary*subStrAttribute1 = @{  
 NSForegroundColorAttributeName: [UIColor redColor],  
 NSStrikethroughStyleAttributeName:@2  
 };  

 NSDictionary *subStrAttribute2 =@{  
 NSForegroundColorAttributeName: [UIColor greenColor]  
};  

NSString *strDisplayText3 =@"Red and Green";  
NSMutableAttributedString *attributedText3 = [[NSMutableAttributedString alloc] initWithString:strDisplayText3];  
[attributedText3 setAttributes:subStrAttribute1 range:NSMakeRange(0,3)];  
[attributedText3 setAttributes:subStrAttribute2 range:NSMakeRange(8,5)];  
self.lblInfo3.attributedText= attributedText3;  

答案 3 :(得分:0)

由于ios6 uilabel支持属性字符串,因此您可以使用它。 对于您的特定情况,下面的代码将工作 -

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"This is an example"];

[string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:20.0] range:NSMakeRange(11, 7)];

label.attributedText = string;