J'ai une hiérarchie où UIScrollviews existent l'un dans l'autre. Comment puis-je rediriger les événements de balayage pour une certaine zone vers une vue de défilement interne?UIScrollView dans UIScrollView
Répondre
Si vous définissez vos UIScrollViews pour être uniquement défilables dans un axe ou dans l'autre (par exemple, définissez leur propriété contentSize de manière appropriée.) Pour que la vue soit défilable verticalement, définissez sa valeur contentSize.width comme identique à sa bounds.size.width). alors ils devraient juste travailler, en supposant que pas deux vues défilent dans le même axe. Habituellement, les vues 'enfant' défilent verticalement et la vue parent défile horizontalement.
Si c'est possible, vous devriez le revoir pour éviter cela. Safari gère ce type de situation, c'est-à-dire les iframes et les zones de texte, en faisant défiler la vue intégrée avec deux doigts. Ce n'est pas très détectable, mais c'est mieux que l'alternative, ce qui serait encore plus frustrant. Si une vue incorporée était à peine visible à l'écran, une tentative de faire défiler la vue extérieure pourrait à la place faire défiler la vue interne, mais pas beaucoup de choses; Il semblerait que ce soit non-réactif. Cela dit, si vous voulez toujours faire cela, essayez de régler la vue de défilement externe canCancelContentTouches
à NO
. Cela devrait empêcher le défilement de la vue extérieure lorsqu'un contact commence dans la vue intérieure. Obtention de défilement à deux doigts de style Safari impliquerait probablement sous-classement UIScrollView
et l'implémentation de la méthode -touchesShouldBegin:withEvent:inContentView:
.
- 1. Nesting UIScrollView intérieur UIScrollView Cocoa Touch
- 2. Touches dans UIScrollView
- 3. Toucher dans UIScrollview?
- 4. Overriding -handlePan: dans UIScrollView
- 5. Autoresize UIScrollView
- 6. iPhone + UIScrollView
- 7. Déplacement UIScrollView
- 8. Notifications UIScrollView
- 9. Problèmes UIScrollView
- 10. UIScrollView touchesBegan
- 11. affichage de l'image dans uiscrollview
- 12. identifiant le balayage dans UIScrollview?
- 13. Ajouter une plume dans UIScrollView
- 14. tactile a commencé dans UIScrollView
- 15. Deux sous-vues dans UIScrollView
- 16. Problème dans UITableView et UIScrollView
- 17. UIButton n'apparaît pas dans UIScrollView
- 18. Deuxième UIScrollView répondant lors de l'utilisation d'un UIScrollView
- 19. UIScrollView et CALayers
- 20. SingleTap sur UIScrollView
- 21. UIScrollView animation laggy
- 22. UIScrollView et presentModalViewController
- 23. Détection de défilement UIScrollView
- 24. UIScrollView ne autorotera pas
- 25. UIScrollView menu carrousel
- 26. UIScrollView scroll problem
- 27. MPMoviePlayerControllers multiples et UIScrollView
- 28. UIScrollView images cliquables iPhone
- 29. UIView setBounds UIScrollView hell!
- 30. UIScrollView ne défile pas
Le UIScrollView principal doit être défilable dans toutes les directions car il est zoomable. – Jean