【问题标题】:how to highlight selected text/string in iphone [closed]如何在iphone中突出显示选定的文本/字符串[关闭]
【发布时间】:2013-05-14 06:35:25
【问题描述】:

我有一个字符串“Expert Sales Manager”作为单元格标题,我只想突出显示 iphone 单元格标题中的“sales”。
请建议我这样做的方法。

【问题讨论】:

  • 您想将 Bold 属性添加到 sales 吗?
  • 是的,我希望将粗体属性添加到销售额(仅限)。
  • 因此,您可以使用 Attributed string 而不是 NSString 并找到 sales 字符的范围。或者您可以在属性字符串中键入 Expert Sales Manager 作为 Expert Sales Manager。希望这能解决您的问题。

标签: iphone ios objective-c text


【解决方案1】:

您可以使用NSMutableAttributedString

NSString *infoString=@"This is an example of Attributed String";
NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];
NSInteger _stringLength=[infoString length];

UIColor *_black=[UIColor blackColor];
UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:30.0f];
[attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)];
[attString addAttribute:NSForegroundColorAttributeName value:_black range:NSMakeRange(0, _stringLength)];

【讨论】:

    【解决方案2】:

    iOS 6开始,UIKit 支持绘制属性字符串

    来自UILabel

    @property(nonatomic, copy) NSAttributedString *attributedText;
    

    您只需要建立您的NSAttributedString。基本上有两种方式:

    1. 附加具有相同属性的文本块 - 为每个部分创建一个 NSAttributedString 实例并将它们附加到一个 NSMutableAttributedString

    2. 从纯字符串创建属性文本,然后为给定范围添加属性 - 找到您的数字(或其他)的范围并在其上应用不同的突出显示属性。

    【讨论】:

      【解决方案3】:

      对于 ios 6 或更高版本,您可以使用NSMutableAttributedString

         NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"OneTwoThreeFour"];
          [string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:20] range:NSMakeRange(3,5)];
      

      并将您的属性文本设置为您的元素..

      label.attributedText = string;
      

      【讨论】:

        猜你喜欢
        • 2019-09-13
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        • 2018-02-10
        • 2021-12-12
        • 2013-02-17
        • 1970-01-01
        • 2016-10-18
        相关资源
        最近更新 更多