2009-07-19 7 views
2

J'ai un bloc de contenu (stocké en XML) que je veux mettre dans un UIScrollView. Certaines parties de ce texte seront formatées avec différentes polices, tailles et couleurs. Au total, il se lit principalement comme un paragraphe avec un mot d'emballage.Plusieurs UILabels pour afficher le balisage XML décoré

J'ai construit mon code NSXMLParser, et j'ai séparé toutes les données. Je suis prêt à appliquer mes décorations et ajouter ces éléments comme UILabels.

Cependant, je suis à la recherche d'une solution pour soulager les difficultés inhérentes aux calculs hauteur/largeur des chaînes et toute cette arithmétique pour que ces UILabels s'alignent bien avec le mot wrapping. [garder une trace de vos dernières coordonnées X et Y, savoir quand insérer des sauts de ligne manuels, comment afficher verticalement une ligne qui a 2 polices de taille différente]

Le balisage XML peut facilement être converti en HTML, et donc UIWebView , mais j'entends que c'est plus lent à charger.

UIWebView va-t-il être la meilleure classe pour cela? J'aurais aimé qu'il y en ait un qui fasse tout cela avec UILabels afin que je puisse utiliser ces éléments pour les événements tactiles. (Je suppose que je ne peux pas utiliser un élément HTML pour déclencher un événement tactile.)

Répondre

2

Vous devriez probablement avoir un UIWebView. Vous pouvez utiliser une ancre HTML pour les éléments tangibles. Le délégué vous donnera la possibilité de faire autre chose que de charger une page Web lorsque l'utilisateur touche l'élément. Vous pouvez utiliser un format d'URL composé pour identifier chaque élément de manière unique. En dehors de cela, vous pouvez utiliser un contrôle personnalisé qui dessine tout le texte, plutôt qu'une série d'UILabels. Les UILabels rendront probablement difficile l'encapsulation.

+0

J'ai déjà passé beaucoup de temps à faire les UILabels sur autre chose plus tôt, et je suis content de savoir que c'était une perte de temps - vraiment - qui peut parfois être la meilleure nouvelle. – ojreadmore

Questions connexes