Dans un poste, Faire en sorte que les longs défilements sur l'iPhone ne craignent pas Aza Raskin décrit une autre commande de barre de défilement qui permet de mieux se déplacer sur les pages très longues :
Il n'est pas important que la barre de défilement "reste pendant un certain temps" pour l'activer ; il me suffit de glisser le long du bord droit de l'écran de l'iPhone pour saisir la poignée de la barre de défilement. L'idée est que si je fais glisser la poignée jusqu'aux 3/4 de l'écran physique, je me retrouve aux 3/4 de la page.
L'application Dropbox pour iPhone (elle est géniale, d'ailleurs !) possède exactement ce type de barre de défilement pour les longs documents PDF. Le défilement normal se fait en glissant n'importe où sauf sur la poignée ; en glissant la poignée, la vue se déplace à cet endroit. Cela semble avoir été implémenté "à partir de zéro", car je ne pense pas que le SDK soit suffisamment flexible pour personnaliser le comportement de la barre de défilement existante.
Toutefois, Dropbox utilise les visionneuses de documents natives pour afficher les documents sur l'iPhone, ce qui lui permet d'ajouter la fonctionnalité de barre de défilement. Vous voyez la poignée de la barre de défilement ? Vous pouvez la faire glisser pour vous déplacer rapidement dans le document.
Ce concept est très similaire à la façon dont les barres d'index fonctionnent dans UITableView (c'est-à-dire Contacts.app) ; l'index apparaît comme une barre sur le côté droit du tableau (par exemple, "a" à "z"), et vous pouvez toucher une étiquette particulière pour sauter à la section cible. Dans ce cas, cependant, une page très longue n'a pas de sections, et cela devrait fonctionner pour un défilement général, pas pour le saut aux sections.
Alors, comment puis-je mettre en œuvre cette méthode de défilement ? Je suis à la recherche d'idées générales et de détails de mise en œuvre spécifiques. Je suis également intéressé par l'existence d'une implémentation open-source (cela semble être un problème/solution à usage général).