2010-02-14 5 views
2

i a un objet avec le contenu de balisage HTML, par exemple:contenu Chaîne HTML pour UILabel et TextView

string = @"<p>This is wonderful</p> <p>Also some &#8216; entidies &#8217; <p>"; 

donc je veux d'abord convertir cette entidies dans mon texte de l'étiquette. La deuxième étape consisterait à convertir mes balises p en sauts de ligne. La deuxième étape consisterait à convertir mes balises p en sauts de ligne.

la troisième étape pour convertir mes « img » tags à UIImageViews et un texte simple, mise en forme « b », « forte », etc.

avez-vous des idées sur la façon de résoudre mon problème?

Répondre

2

Vous devriez jeter un oeil au projet Three20 qui inclut une classe TTStyledTextLabel qui vous permet de rendre HtmL-Code et même d'activer des liens.

TTStyledTextLabel *htmlLabel = [[[TTStyledTextLabel alloc] initWithFrame:self.contentView.bounds] autorelease]; 
htmlLabel.userInteractionEnabled = YES; 
[aView addSubview:htmlLabel]; 

htmlLabel.text = [TTStyledText textFromXHTML:htmlText]; 
+0

Est-il possible d'inclure uniquement cet objet TTStyledTextLabel? trois20 est très grand, n'est-ce pas? avec Photoviewer et d'autres choses – choise

+0

Vous aurez probablement besoin d'inclure plus que cette classe, mais vous pourriez bien être en mesure de supprimer les parties dont vous n'avez pas besoin. – FelixLam

+3

J'utilise du code pour obtenir la hauteur de l'étiquette. . 'CGSize tempSize = [pourStr sizeWithFont: forFont constrainedToSize: CGSizeMake (lblLargeur, 20000.0f) lineBreakMode: UILineBreakModeWordWrap]; \t rowHeight = tempSize.height; '. . . Comment on obtient la hauteur en cas de chaîne html –