我已经查看了大约 10 个关于 SO 的问题,但仍然不足。
我有一个多行 UILabel(在 Interface Builder 中创建,numberOfLines 设置为 0),通常呈现如下:
我想强调“服务条款”和“隐私政策”,所以我添加了以下代码:
NSString *text = self.agreement.text;
NSMutableAttributedString *aString = [[NSMutableAttributedString alloc] initWithString:text];
NSRange privacyRange = [text rangeOfString:@"privacy policy" options:NSCaseInsensitiveSearch];
[aString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:privacyRange];
NSRange tosRange = [text rangeOfString:@"terms of service" options:NSCaseInsensitiveSearch];
[aString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:tosRange];
self.agreement.attributedText = aString;
但结果如下所示:
我需要做什么才能显示两条线,并在适当的范围下划线?
此外,我不希望使用 OHAttributedLabel 或 TTTAttributedLabel 之类的第 3 方库,因为这是我的应用程序中唯一需要为一段文本添加下划线的地方。
我试过的
sizeToFit
设置属性文本后调用- 改用 UITextView。两条线都正确渲染,但我失去了中心对齐。
- 重置
numberOfLines
和lineBreakMode
代码
Sascha 让我上传两张背景颜色设置为非清晰的屏幕截图。奇怪的是,一切都按预期显示!不知道该怎么做或这告诉我们什么。