2010-10-06 45 views
1

它現在已經讓我感到絕望了幾周,但我無法找到如何在facebook iphone應用程序中獲取文本正文中的鏈接。Facebook式的文字「超鏈接」

作爲鏈接的特定單詞與文本的其餘部分顏色不同,單擊後顏色變化並且其周圍有一個灰色框。

我能想到的唯一方法就是使用UIWebView--但我非常肯定的是,這不是Facebook的做法。

任何想法? - 我需要將文本透露給另一個視圖 - 所以如果可能的話,它需要運行一個方法。

謝謝

回答

2

您可以檢查出Three20庫,而這正是Facebook的內部是什麼坐鎮。你可以在裏面找到他們正在使用的確切解決方案。

但是,有些人發現Three20有點過頭了,因爲你必須導入大部分庫的唯一標籤。這就是爲什麼我個人更喜歡來自Craig Hockenberry的FancyUILabel,他在Twitterrific工作 - you can find it here

希望這有助於 帕維爾

+0

這個圖書館看起來很出色,但是我(正如很多人認爲的那樣,根據評論來判斷)在試圖實現它的過程中非常艱難。恥辱,因爲它看起來非常棒。將看看fancyUILabel。 :) – 2010-10-06 10:49:48

+0

FancyUILabel - 它有點hacky,但它的確有竅門! :) – 2010-10-06 11:40:42

0

在Mac OS上可以嵌入使用NSAttributedString的超鏈接。由此產生的屬性字符串將包含顯示的網址,樣式和顏色。

在iPhone上渲染屬性文本,你將不得不使用CoreText(iOS 3.2及以上)。 可能UIWebView會更好,因爲它開箱即用,並且不需要3.2。

乾杯, 剋日什托夫·Zabłocki

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。它效果很好。

+0

這很好,但我不想使用這個 - 我想把鏈接放到UILabel中 - 我不想要「bounce」和帶有標準uiwebview標準的陰影陰影線條。不過謝謝。 – 2010-10-06 10:48:31