2012-11-27 11 views
5

Ho una tabellaview e la cella tableview è personalizzata per avere un UILabel. Il testo in UILabel sta avendo URL. C'è un modo per rilevare URL come il modo in cui UITextView abiliterà a rilevare gli URL in modo che l'interazione dell'utente possa essere in grado di caricare gli URL.rilevare urls in UILabel

risposta

5

Se si desidera solo identificare gli URL, è possibile utilizzare NSDataDetector con il tipo di controllo NSTextCheckingTypeLink.

Se si desidera disegnare gli URL in modo diverso e si sta puntando su iOS 6, è possibile utilizzare uno NSAttributedString per trasformare gli URL in blu o sottolinearli o altro. Se scegli come target una versione precedente di iOS, probabilmente vorrai cercare un codice gratuito in Internet per disegnare un testo in stile, ad esempio OHAttributedLabel.

Se si desidera rendere effettivi gli URL sensibili al tocco, è possibile aggiungere un contrassegno di riconoscimento dei gesti all'etichetta e cercare di capire quale parte della stringa è stata toccata (un po 'complicata) oppure cercare un codice gratuito su Internet che già lo fa per te (come OHAttributedLabel), o semplicemente metti uno UITextView nella cella di visualizzazione tabella invece di un'etichetta.

+0

La mia [risposta qui] (http://stackoverflow.com/a/29352519/168594) ha un codice di esempio che mostra come rendere gli intervalli di UILabel tapable con un UITapGestureRecognizer, come suggerito da @RobMayoff. – zekel

-4

come Rob sottolinea come possiamo ottenere lo stesso è fantastico.

Ma, possiamo usare un tatto così può salvare con il rilascio della versione di ios (possibilmente), semplicemente usando UILabel e UIButton.

Quello che dobbiamo fare è che, sia da IB o storyboard, basta posizionare un UILabel con stringa come URL (usare questo come titolo), ad esempio;

"www.myURL.com"

Ora, appena al di sopra di esso, mettere un UIButton (pulsante con tipo personalizzato), e basta usare "______" (sottolineato) e impostare questo tasto come sovrapposizione tuo UILabel e anche la 'sottolineatura' deve essere al di sotto dell'etichetta.

Ora, basta fare in azione del pulsante ciò che è necessario in base al clic dell'URL e qui puoi anche modificare le proprietà textColor, etc; carica anche l'URL e vai a UIWebView.