我正在尝试找到一种在我的iOS应用中在标签文本中包含超链接的简单方法。目标是让用户点击URL,应用程序将打开带有该URL的Safari浏览器。
我已经阅读过包含一个带有URL作为标签的按钮,但这对我的应用程序不起作用。
有一种简单的方法吗?
非常感谢
答案 0 :(得分:1)
你可以使用NSArrtibutedStrings
来实现这一点 - 但我建议使用这个C函数的一些包装器。我喜欢OHAttributedLabel
。
包含的演示确切地说明了如何处理超链接。
答案 1 :(得分:0)
您可以启动UIWebView,而不是调用Safari。您可以更好地控制用户可以在该网页上执行的操作。
答案 2 :(得分:0)
您需要为标签启用用户互动,然后覆盖- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
方法来处理触摸。
要启用用户互动,请在UILabel上设置以下属性:
urlLabel.userInteractionEnabled = YES;
touchEnded的一个例子:WihEvent:在你的UIViewController中:
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch;
CGPoint currPt;
if ((touches = [event touchesForView:urlLabel]))
{
touch = [touches anyObject];
currPt = [touch locationInView:self.view];
if ( (currPt.x >= urlLabel.frame.origin.x) &&
(currPt.y >= urlLabel.frame.origin.y) &&
(currPt.x <= (urlLabel.frame.origin.x + urlLabel.frame.size.width)) &&
(currPt.y <= (urlLabel.frame.origin.y + urlLabel.frame.size.height)) )
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlLabel.text]];
return;
};
};
return;
}