感谢文字中的下划线无法在iPhone 6 +

时间:2015-06-23 09:43:51

标签: ios iphone nsattributedstring

我想创建一个返回属性文本的方法。

这是我正在使用的代码

- (NSAttributedString *)getUnderlineAttributedStringForText:(NSString *)strWholeString andTextToHaveLink:(NSString *)strLink TextColor:(UIColor *)textColor LinkColor:(UIColor *)linkColor withFont:(UIFont*)font {

NSRange stringRange = NSMakeRange(0, strWholeString.length);
NSRange linkRange = [strWholeString rangeOfString:strLink];
NSLog(@"String Link :: %@",[strWholeString substringWithRange:linkRange]);
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:strWholeString];
// Paragraph Style
NSMutableParagraphStyle *paragrapStyle = NSMutableParagraphStyle.new;
paragrapStyle.alignment = NSTextAlignmentLeft;

[attributedString addAttribute:NSParagraphStyleAttributeName value:paragrapStyle range:stringRange];
[attributedString addAttribute:NSForegroundColorAttributeName value:textColor range:stringRange];
[attributedString addAttribute:NSFontAttributeName value:font range:stringRange];
[attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger: NSUnderlineStyleSingle] range:linkRange];
[attributedString addAttribute:NSForegroundColorAttributeName value:linkColor range:linkRange];

return attributedString;
}

// This is how I call the method 
[btnTermOfUse setAttributedTitle:[self getUnderlineAttributedStringForText:@"By signing up you agree to the Terms of Use" andTextToHaveLink:@"Terms of Use" TextColor:[UIColor darkGrayColor] LinkColor:[UIColor orangeColor] withFont:[UIFont systemFontOfSize:16]] forState:UIControlStateNormal];

此代码适用于除6 +之外的所有设备。

编辑 - 在6+中只是下划线没有显示链接文本的文本颜色更改。 in 6+ just underline is not showing text colour change for the link text 我可以在iPhone 6或5S中看到下划线。

有人对此有任何想法吗?

我知道已经有很多与此相关的问题,但他们没有帮助我,所以我写在这里。

1 个答案:

答案 0 :(得分:2)

发现了一个黑客!! :(

你应该在设置文本之前写下这一行,

[btnTermOfUse titleLabel].numberOfLines = 0;

这也会显示设备上的线路。