2010-01-06 4 views
1

Nous essayons d'écrire une application de manuel de formation pour l'iPhone. Sur la moitié supérieure de l'écran est un schéma d'un moteur de voiture, sur la moitié inférieure est un texte. Lorsque l'utilisateur frappe plusieurs fois sur un bouton "suivant", nous mettons en évidence différentes parties du moteur, et de concert nous mettons en évidence différentes parties du texte descriptif ci-dessous.Grande table de défilement avec boutons

Nous voulons fondamentalement "texte vivant" dans la moitié du texte, avec l'illustration suivant au-dessus vers où le lecteur est dans le texte. Ce que nous aimerions du texte est 1. l'utilisateur peut le faire défiler en utilisant son pouce donc éventuellement un UIScrollView 2. le logiciel peut explicitement conduire un défilement à n'importe quelle partie du texte (quand ils frappent le bouton "suivant"). 3. les mots dans le texte sont entrecoupés de liens hypertextes, par ex. "C'est l'arbre à cames ... c'est le piston ..." et l'utilisateur devrait être capable de cliquer sur l'un des mots-clés comme l'arbre à cames, le piston, et de faire ressortir le diagramme. (Le problème ne met pas en évidence le diagramme, c'est la capture du clic). Le texte aurait 300 ~ 400 boutons/liens/mots-clés et environ 600 mots de texte. Comme cela est assez similaire à l'utilisation d'un navigateur Web, nous avons essayé d'utiliser la version de Webkit d'Apple en utilisant UIWebView et handleOpenURL pour enregistrer un service dans l'application elle-même. Mais Webkit pour les liens internes une fenêtre surgit demandant l'autorisation d'accéder à ce lien. Chaque utilisateur souhaite accéder à un lien (dans notre cas, il s'agit d'un événement interne que nous intercepterions pour que nous puissions mettre en évidence, par exemple, l'arbre à cames). J'ai essayé d'intercepter l'événement de la vue HTML, mais cela n'a pas fonctionné. Il semble que le mieux que nous puissions faire est d'abandonner le texte défilant et de faire en sorte que le texte ressemble davantage à des cartes flash ou à une présentation PowerPoint, en découpant le texte en UIViewCells personnalisés avec des boutons dans UIScrollView. Cependant, cela imposerait une contrainte gênante à l'auteur qu'il lui faudrait écrire tout pour entrer dans les UIViewCells, en gros morceaux.

Toutes les idées seraient appréciées.

Répondre

2

Ceci est certainement quelque chose que vous pouvez utiliser un UIWebView pour. N'utilisez pas handleOpenURL, définissez plutôt viewController en tant que délégué de la vue Web et remplacez -webView: shouldStartLoadWithRequest: navigationType :. Lorsque cela est appelé, vérifiez la demande et sortez vos données de lien à partir de là.

0

Il serait probablement plus facile à implémenter complètement en JavaScript dans le document que vous chargez dans un UIWebView. De toute façon, vous devez utiliser JavaScript (c'est-à-dire [UIWebView stringbyevaluatingjavascriptfromstring:]) pour réaliser des tâches telles que le défilement jusqu'à une certaine position.

Questions connexes