2010-12-02 26 views
1

Je travaille sur une application prototype qui a un comportement difficile. Je pensais que je demanderais conseil avant de vraiment le déchirer ...Texte mis en forme et Popovers dans iOS4

Une partie de l'application a une zone de texte qui doit être formatée d'une manière où il y aura une description d'un élément en gras, suivi par un ou plusieurs articles de détail:

article description: Détail de l'article 1. Détail de l'article 2. Détail de l'article N.

Dans la plupart des cas, ces éléments nécessiteront plusieurs lignes, de sorte de mot emballage sera nécessaire.

L'utilisateur pourra taper sur n'importe quelle description d'objet en gras pour exposer un survol avec des options qu'il peut sélectionner pour remplir les détails de l'élément. J'étais sur le point d'essayer de le faire avec un webview, pour pouvoir formater le texte, fournir un enveloppement de mots naturels et utiliser des liens hypertexte pour appeler des méthodes, etc ... Comme je regarde dans ce plus, je peux le voir être une tâche assez lourde et vouloir s'assurer qu'il n'y a pas d'alternatives à cela avant de me diriger vers ce qui ressemble à un tunnel assez long et sombre.

Je suis encore assez nouveau pour iOS dev, alors gardez-moi si je reviens avec des questions "noob".

Merci d'avance!

Répondre

2

L'alternative est Core Text mais c'est aussi un tunnel assez long et sombre.

+0

Donc, je vois ... Merci pour le pointeur. On dirait que je vais lire pour la plupart de demain! Je reviendrai bientôt à ça. – Eric

+0

J'ai fait des recherches sur Core Text, mais je ne vois aucune indication que des sections individuelles de texte peuvent être rendues interactives. La description de base indique que le texte de base est utilisé pour «mettre en page le texte et gérer les polices». Ai-je raison de supposer qu'il n'y a pas de possibilité d'ajouter une action à une série de texte? – Eric

+0

Rien n'est automatique mais au moins le texte de base vous donne la possibilité de déterminer où une frappe a eu lieu (bien que vous deviez le coder vous-même). Avec un emplacement tap, parcourez tous les objets 'CTLine' pour déterminer dans quelle ligne le tap s'est passé, puis appelez' CTLineGetStringIndexForPosition() 'pour obtenir la position exacte du tap dans la chaîne. Vous examinerez ensuite les attributs de la chaîne à cet emplacement et les utiliserez pour déterminer l'action à appeler. –