Comment puis-je reproduire le comportement de défilement à film de l'iPhone UIScrollView dans ma propre vue personnalisée?

StackOverflow https://stackoverflow.com/questions/784192

Question

Je voudrais reproduire le comportement à défilement de film UIScrollView, mais je ne veux pas utiliser (ou ne peut pas utiliser) cette classe. Que puis-je faire?

Était-ce utile?

La solution

D'accord, j'ai répondu en implémentant ma propre bibliothèque qui capture la dynamique de UIScrollView.

Ce qui est utile au sujet de mon code est qu'il est indépendante du système de coordonnées, le taux d'animation, et des classes particulières de l'interface utilisateur que vous utilisez. Il peut facilement être niché dans une vue personnalisée classe de votre choix.

Le comportement film à défilement par défaut de l'iPhone est intéressant. Si vous maintenez votre doigt vers le bas pendant une longue période et de le déplacer dans une variété de directions, vous verrez que seule la dernière direction est utilisée pour calculer le mouvement de défilement.

Si vous essayez de construire cependant, vous découvrirez rapidement ce code vous-même, en utilisant simplement que les deux derniers points pour calculer la direction du mouvement ne va pas le couper. Au lieu de cela, mon code conserve un bref historique des touches et utilise une interpolation linéaire pour déterminer où le contact « aurait été » une petite quantité il y a du temps. Ce point interpolé est utilisé comme base pour le calcul du vecteur de mouvement. Cela conduit à une interaction très agréable.

Le code est disponible sur GitHub, ici: http://gist.github.com/100855. Il est libéré sous la licence BSD.

Autres conseils

Alors qu'en est-UIScrollView n'a pas fonctionné pour vous? Cette classe est assez souple ...

Dave, je vois que vous avez Answerd votre propre question avec un code, mais ne fixant pas ce qui suit vous donner ce que vous avez besoin:

myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.directionalLockEnabled = YES;

Plus précisément, il semble que vous avez réimplémentées directionLockEnabled. comprendre peut-être pourquoi vous ne pouvez pas utiliser UIScrollView est le problème plus intéressant: -)

Ceci est cool! Je l'ai utilisé dans une application où mon avis est d'un jour scrollable la valeur de données graphiques dans une gamme 1902-2037, donc une UIScrollView ne serait pas efficace.

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