2016-06-21 383 views
0

我創建了一個帶有不同部分和單元格的「UITableView」:「在Instagram上關注我們」或「在Facebook上關注我們」。 這個單元格應該有一個鏈接到每個頁面。 我嘗試這樣做:Swift 2帶有超鏈接的表格視圖單元格

@IBAction func WebLink(sender: AnyObject) { 
if let url = NSURL(string: "http://...") { 
    UIApplication.sharedApplication().openURL(url) 
} 
} 

但我不能與單元格鏈接的@IBAction ...

它應該是這樣的和每一個細胞都應該是一個超鏈接。

enter image description here

+0

嘿,在使用tableview單元格時,不需要IBAction。 ...你在用細胞工作嗎?另外,我們能否獲得更多細節?你想做什麼?訪問應用程序內的鏈接?從當前的應用程序移動到Safari並加載網站?移動到關聯的應用程序?這裏有很多問題。 – KFDoom

+0

單擊單元格後,鏈接應在Safari中打開。 例如: 「在Facebook上關注我們」 - 如果用戶點擊單元格,safari應該用facebook粉絲頁面打開。 轉移到Facebook應用程序會更好,我認爲...但我不知道該怎麼做。 – Leon

+0

好吧,我現在明白了。我將包括兩個代碼。 – KFDoom

回答

2

您可以直接使用:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell! 
    // launch your func WebLink with the currentCell 
    ... 
} 
+0

這個答案是我傾向於的,但我很謹慎地承擔我認爲用戶想要做的事情。 – KFDoom

+1

@KFDoom希望這可以幫助他或指出他的方向正確.. –

+0

@AlessandroOmano TIL你不必爲了幫助他們而給人完整的答案。謝謝亞歷山德羅。 – KFDoom

1

我沒有找到任何東西,使我們與一個簡單的標籤這樣做。但是在github中有這樣一個庫。看來你不能用Swift中的簡單標籤來做到這一點。但是,有一個名爲TTTAttributedLabel的庫,我認爲它符合你的要求。這裏有一個鏈接庫:https://github.com/TTTAttributedLabel/TTTAttributedLabel

@IBOutlet var exampleLabel: TTTAttributedLabel! 

    //... 

let exampleString: NSString = "My super cool link" 
exampleLabel.delegate = self 
exampleLabel.text = exampleString as String 
var range : NSRange = exampleString.rangeOfString("link") 
exampleLabel.addLinkToURL(NSURL(string: "http://www.stackoverflow.com")!, withRange: range) 

func attributedLabel(label: TTTAttributedLabel!, didSelectLinkWithURL url: NSURL!) { 
     UIApplication.sharedApplication().openURL(url) 
} 

邊注:沒有想象我會想念的Objective-C。如果這是您正在尋找的內容,我將使用Swift 3.0答案進行更新。

+0

不錯的選擇。 –