我想将属性字符串与 NSLinkAttributeName
一起使用在 UILabel
中创建可点击的链接我的 iOS 7 项目中的实例,现在终于可以在不使用外部库的情况下实现。
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
url, NSLinkAttributeName, nil];
在字符串上应用属性将文本显示为蓝色和下划线,但单击/点击时没有任何 react 。为标签启用了用户交互。
有人知道怎么做这个吗?谢谢!
最佳答案
我现在可以回答我自己的问题:
我正在使用 UITextView
而不是 UILabel
现在。我已格式化 UITextView
看起来和表现得像我的标签并添加:
UITextView *textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
textView.editable = NO;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
textView.delegate = self;
不要忘记设置委托(delegate),你必须实现
UITextViewDelegate
!现在我们实现委托(delegate)方法:- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{
return YES;
}
这会自动打开提供的
NSURL
-我点击/点击问题中属性字符串的实例。请记住:这仅适用于 iOS 7,对于旧版支持,您需要外部库
更新:
制作
UITextView
s 的行为就像标签一样,最后一团糟,我偶然发现了一些可怕的 iOS 行为。我最终使用了 TTTAttributedLabel库非常棒,允许我使用标签而不是 UITextView
s。
关于ios7 - UILabel 和 NSLinkAttributeName : Link is not clickable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19854506/