Question

Je souhaite afficher un texte avec beaucoup de lignes. J'ai ajouté une étiquette multiligne à une vue de défilement, mais elle n'affichait rien. On dirait que ce n'est pas la bonne façon d'utiliser la vue par défilement. Comment utiliser la vue par défilement pour que les utilisateurs puissent faire glisser le curseur vers le bas pour voir plus de texte?

Était-ce utile?

La solution

Vous pouvez simplement utiliser une UITextView. C'est un enfant de UIScrollView, et si vous définissez sa propriété text sur une quantité de texte qui ne rentre pas dans son cadre, la vue deviendra défilante.

Autres conseils

de la documentation UIScollView est très bien, vous devriez commencer par là et comprendre la classe.

Pensez à une vue de défilement comme une grande surface sur laquelle l'écran glisse *. Vous pouvez ajouter des sous-vues à la vue de défilement. Le défilement équivaut à positionner l'écran par-dessus la vue à défilement. L'écran se comporte comme une fenêtre permettant de voir une partie du contenu de la vue de défilement ci-dessous.

Pour ce faire, une vue de défilement a quelques propriétés supplémentaires par rapport à une vue UIV normale - mais elle ressemble à une vue UIV dans un aspect extrêmement important: elle ne restitue aucun contenu directement. Vous devez ajouter une sous-vue pour dessiner votre texte. Une vue de défilement est configurée et affichée exactement de la même manière qu’UIView - c’est-à-dire que vous définissez le cadre pour l’ajouter à une autre vue. Pour afficher votre texte, vous devez ajouter des sous-vues à la vue UIScrollView permettant de restituer le texte.

Pour configurer un UIScrollView de base que vous demandez, vous devez simplement le créer comme une vue normale en plein écran - définissez le cadre sur la même taille que la fenêtre et ajoutez le défilement à la fenêtre en tant que sous-vue. Ensuite, créez une grande UITextView pour contenir votre texte. La vue UIText peut être aussi grande que vous le souhaitez - en particulier, elle peut être plus grande que l’écran. définissez la propriété contentSize de UIScrollView afin qu'elle soit identique au cadre de UITextView, puis ajoutez la vue UIText en tant que sous-vue de UIScrollView.

Une fois que cela fonctionne, vous pouvez déplacer le contenu automatiquement avec la propriété contentOffset, contrôler le zoom et configurer un délégué pour observer les événements de défilement.

* plus précisément, sur lequel le cadre glisse, mais je suppose que vous créez un UIScrollView en plein écran. Je suis sûr que vous pouvez le généraliser si vous voulez une vue plus petite.

J'ai utilisé UIScrollView de cette manière pour un volet d'instructions dans l'une de mes applications. Cela a fonctionné mais je n’étais pas satisfait du résultat. Je suis ensuite passé à l’utilisation d’un UIWebView et j’ai été beaucoup plus satisfait du résultat. Il gère le dimensionnement automatique de la vue de défilement, je dispose de toutes les fonctionnalités de formatage HTML et je peux avoir des liens menant à des informations supplémentaires (ou à des sites externes) sans rien ajouter à l’ajout d’un autre fichier HTML et peut-être du code de délégué. Voici le code que j'ai utilisé (et j'ai ajouté le fichier HTML à mon application en tant que ressource):

NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"];
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
[self.instructionsView loadHTMLString:htmlString baseURL:nil];

Vous pouvez consulter ce site Web http: //www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/

Vous suivez l’étape par étape pour faire défiler la vue dans iphone ... bonne chance :))

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top