2010-10-06 6 views
1

Il m'a bugué pour absolument semaines maintenant, mais je ne peux pas trouver comment obtenir des liens dans les corps de texte comme dans l'application facebook iphone."hyperliens" de style Facebook dans le texte

Le mot spécifique qui est un lien est une couleur différente du reste du texte et lorsqu'il est cliqué change de couleur et a une boîte grise autour d'elle. La seule façon que je peux penser est avec un UIWebView - mais je suis assez positif que ce n'est pas la façon dont facebook le fait.

Des idées? - J'aurais besoin que le texte soit divulgué à un autre point de vue - donc il faudrait lancer une méthode si possible.

Merci

Répondre

2

Vous pouvez consulter la bibliothèque Three20, ce qui est exactement ce qui se trouve à l'intérieur de facebook. Vous pouvez trouver la solution exacte qu'ils utilisent à l'intérieur.

Cependant, certaines personnes trouvent Three20 un peu surchargé, car vous devez importer la majeure partie de la bibliothèque pour la seule étiquette. C'est pourquoi je préfère personnellement FancyUILabel de Craig Hockenberry qui a travaillé sur Twitterrific - you can find it here.

Hope this helps, Pawel

+0

cette bibliothèque a l'air brillante, mais je (comme beaucoup de gens je pense, à en juger par les commentaires) ai un temps incroyablement difficile à mettre en œuvre. Dommage, parce que ça a l'air absolument fantastique. Jetez un oeil à fancyUILabel. :) –

+0

FancyUILabel - c'est un peu hacky, mais ça fait l'affaire! :) –

0

Sur Mac Os vous pouvez intégrer un lien hypertexte en utilisant un NSAttributedString. La chaîne attribuée résultante contiendra l'URL, le style et la couleur à afficher.

Sur iPhone pour afficher le texte attribué, vous devez utiliser CoreText (iOS 3.2 et supérieur). Probablement UIWebView serait mieux depuis son hors de la boîte et ne nécessite pas 3.2.

Cheers, Krzysztof Zabłocki

1

J'ai fait même dans l'une de mon application iPhone. J'ai utilisé UIWebView. Définir le délégué à soi-même. Quelle que soit la ligne que vous voulez montrer en tant que lien, mettez-la dans la balise ancor. Chargez votre contenu html dans webView. Ensuite, mettre en œuvre ci-dessous méthode déléguée

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

Lorsque vous toucherez sur le lien, vous obtiendrez l'URL (que vous avez donné dans l'attribut href) à l'intérieur méthode de rappel. Ainsi vous pouvez effectuer n'importe quelle action que vous voulez. Pour montrer la sélection au toucher, vous pouvez utiliser javascript dans votre contenu html. Cela fonctionne très bien.

+0

c'est bien mais je ne voulais pas utiliser cela - je voulais vraiment mettre les liens dans un UILabel vraiment - je ne veux pas le "rebond" et la gouttière laide et ombragée qui vient avec la norme de bog uiwebview. Merci quand même. –