Facebook风格的“超链接”在文本中

时间:2010-10-06 09:01:13

标签: iphone objective-c

它一直困扰我几个星期,但我无法找到如何在facebook iphone应用程序中获取文本正文中的链接。

作为链接的特定单词与文本的其余部分颜色不同,单击时会更改颜色并在其周围有灰色框。

我能想到的唯一方法是使用UIWebView - 但我非常肯定这不是facebook的方式。

有什么想法吗? - 我需要将文本透露给另一个视图 - 如果可能的话,它需要运行一个方法。

谢谢

3 个答案:

答案 0 :(得分:2)

你可以查看Three20库,这正是facebook里面的内容。你可以找到他们在里面使用的确切解决方案。

然而,有些人认为Three20有点过头了,因为你必须为大部分标签导入大部分库。这就是为什么我个人更喜欢Craig Hockenberry的FancyUILabel,他曾在Twitterrific上工作过 - you can find it here

希望这有帮助, 的Pawel

答案 1 :(得分:1)

我在我的一个iPhone应用程序中做过同样的事情。我使用过UIWebView。将代表设置为自己。无论您希望将哪条线显示为链接,都将其放入ancor标签中。在webView中加载html内容。然后实现下面的委托方法

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{
if (navigationType == UIWebViewNavigationTypeLinkClicked)
{
     NSURL *URL = [request URL];
    // Write your code here
}
}

当你点击链接时,你会在回调方法中获得url(你在href属性中给出的)。所以你可以执行你想要的任何动作。要在触摸时显示选择,您可以在HTML内容中使用javascript。它很棒。

答案 2 :(得分:0)

在Mac Os上,您可以使用NSAttributedString嵌入超链接。结果属性字符串将包含要显示的网址,样式和颜色。

在iphone上呈现属性文本,您必须使用CoreText(iOS 3.2及更高版本)。 可能UIWebView会更好,因为它开箱即用,并且不需要3.2。

干杯, KrzysztofZabłocki