2016-06-21 6 views
0

Я создал UITableView с различными разделами и ячейками вроде: «Следуйте за нами на Instagram» или «Like us on Facebook». Эти ячейки должны иметь ссылку на каждую страницу. Я попытался это:Swift 2 Table View Cell с гиперссылкой

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

Но я не могу связать @IBAction с Cell ...

Он должен выглядеть так и на каждый элемент должен быть гиперссылкой.

enter image description here

+0

Эй, там нет необходимости в IBAction при работе со ячейкой tableview. ... Вы работаете с ячейкой? Кроме того, можем ли мы получить более подробную информацию? Что ты пытаешься сделать? Посетите ссылку в приложении? Переместить из вашего текущего приложения в сафари и загрузить веб-сайт? Переместить в соответствующее приложение? Здесь много вопросов. – KFDoom

+0

Ссылки следует открывать в 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) 
} 

Side Примечание: Возможно, когда-нибудь не предполагал, что я скучаю по Objective-C. Я обновлю ответ Swift 3.0, если это то, что вы искали.

+0

Хорошая альтернатива. –