使用NSLinkAttribute的归属字符串不会在iPhone上呈现

时间:2013-12-08 22:41:09

标签: ios ios7 nsstring uitextview nsattributedstring

我们有一个带有3个组件的属性字符串,其中两个是基本字符串,第三个是链接。该字符串由UITextView呈现。奇怪的是,这个链接在iPhone上是不可见的,但在iPad上渲染得很好。无论模拟器还是实际手机,行为都是一致的。

尝试更改链接的颜色无效。有趣的是,设置下划线颜色将显示下划线...但文本仍然是不可见的。

iOS 7,Xcode 5

这是我们的代码:

// put together our text for the about view, includes link to Facebook
UIFont *font = [UIFont fontWithName:@"Sansation_Bold_Italic" size:aboutText.font.pointSize];
UIFont *linkFont = [UIFont fontWithName:@"Sansation_Italic" size:aboutText.font.pointSize];
NSMutableDictionary* linkAttributes = [[NSMutableDictionary alloc] init];
[linkAttributes setObject:@"https://www.facebook.com/App" forKey:NSLinkAttributeName];
[linkAttributes setObject:[NSNumber numberWithInt:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName];
[linkAttributes setObject:[UIColor blueColor] forKey:NSStrokeColorAttributeName];
[linkAttributes setObject:[UIColor blueColor] forKey:NSUnderlineColorAttributeName];
[linkAttributes setObject:linkFont forKey:NSFontAttributeName];
NSAttributedString* link = [[NSAttributedString alloc] initWithString:@"Facebook" attributes:linkAttributes];
NSMutableAttributedString* mas = [[NSMutableAttributedString alloc] initWithString:NSLocalizedString(@"ABOUTMSG1", nil)];
[mas appendAttributedString:link];
[mas appendAttributedString:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"ABOUTMSG2", nil)]];
[aboutText setAttributedText:mas];

iPhone

iPhone result

ipad公司

iPad result

有关为什么链接没有在iPhone上呈现的任何想法?

1 个答案:

答案 0 :(得分:0)

出于某种奇怪的原因,颜色似乎是“ClClear。”

在任何情况下,如果您将linkTextAttributes的{​​{1}}设置为空

  

Swift 中的UITextView

然后,您可以为链接设置自定义颜色,与任何其他文本一样。