2010-03-27 9 views
1

Je suis nouveau dans le développement de l'iPhone, et j'ai une question sur la façon de créer une vue pour mon application.Comment concevez-vous une vue de question/réponse (iPhone SDK)

La vue devrait afficher un problème (en utilisant du texte mis en forme/syntaxe en surbrillance) et plusieurs réponses possibles. L'utilisateur devrait pouvoir cliquer sur une réponse pour le valider.

Actuellement, j'essaie d'utiliser un UIWebView incorporable UITableView en tant que contentView. Cela me permet d'afficher facilement du texte formaté. Le problème est que c'est réel douleur pour calculer et ajuster la hauteur des cellules. Je dois précharger le webview, appeler sizeToFit, obtenir sa hauteur, et mettre à jour la cellule en conséquence. Ce processus devrait être fait pour le problème et les réponses (car ils sont aussi en format HTML).

C'est une telle douleur que j'ai l'intention de passer à autre chose. Je pensais utiliser seulement un grand UIWebView et tout concevoir en HTML. Mais j'ai regardé quelques articles décrivant comment communiquer entre la page HTML et le code ObjectiveC. Cela semble impliquer des trucs terribles aussi ...

Alors ... c'est ça, je ne sais pas vraiment ce que je devrais faire. Je suppose que certains d'entre vous ont traité avec de telles choses avant, et fourniraient quelques conseils grandement appréciés :)

+0

Construire StackOverflow pour l'iPhone sommes-nous? ;-) – Josh

+0

Non, juste une application de quizz :) – NewbiZ

+0

@Josh Il existe déjà une application iPhone stackoverflow appelée Six To Eight (http://stackapps.com/questions/623/six-to-eight-an-iphone-client -now-in-the-app-store) –

Répondre

1

La capture ici est que l'API d'iPhone ne soutient pas encore NSAttributedString ainsi vous ne pouvez pas simplement placer le texte pour apparaître comme vous aimeriez dans un textview.

J'ai vu un travail autour duquel essentiellement UILabels individuels pour représenter chaque exécution d'attribut. (Impossible de trouver le lien maintenant.) Ils ont utilisé les extensions NSString UIKit pour calculer la position des chaînes sur la vue, puis l'ont utilisée pour positionner les étiquettes.

Un autre travail consiste à dessiner les chaînes avec leurs attributs à un UIImage, puis simplement afficher l'image. Ce serait la solution la plus simple je pense.

Dans les deux cas, vous allez devoir recréer la structure de données d'une chaîne attribuée.

NSAttributedString fait beaucoup de travail pour nous. Il nous manque vraiment quand il est parti.

+0

Le problème lors de l'utilisation des étiquettes et des chaînes, c'est que j'aurais besoin d'un langage de balisage pour les décorer. Actuellement, les problèmes et les réponses sont stockés sous forme de texte HTML dans une base de données. Je ne connais pas d'autre moyen que le HTML pour stocker du texte décoré. – NewbiZ

+0

Eh bien, il semble qu'il n'y aura pas d'autre réponse ici :) Merci pour votre temps! – NewbiZ