Configuration: J'ai un UITableView
, chaque UITableViewCell
a un UIScrollView
. Ce que j'essaie de faire est d'obtenir tous les UIScrollViews
pour faire défiler ensemble, de sorte que lorsque vous faites défiler l'un d'eux tous les UIScrollViews
semblent faire défiler simultanément.Comment faire défiler un ensemble de UIScrollViews ensemble?
Ce que j'ai fait est sous-classe UITableView
de sorte qu'il a un tableau de tous les UIScrollViews
dans ses cellules de tableau. J'ai ensuite transmis TouchesBegan
, TouchesMoved
, TouchesCancelled
et TouchesEnded
du UITableView
à tous les UIScrollViews
dans la matrice.
Cela ne semble pas fonctionner. Les UIScrollViews
ne défilent pas! La seule façon que j'ai réussi à faire fonctionner ceci est d'appeler la méthode setContentOffset
: sur les scrollviews. Cependant, ceci est une très mauvaise solution, car il ne vous donne pas les caractéristiques de balayage et de décélération du UIScrollView
.
Des idées sur pourquoi mes méthodes touch ne parviennent pas à la UIScrollViews
? Ou une meilleure façon de mettre en œuvre cela?
solution intéressante ah. Je vais essayer cette fois que je rentre à la maison. Je n'ai pas pensé à utiliser setContentOffset basé sur scrollViewDidScroll, je l'ai fait en fonction des touches. Comme vous pouvez l'imaginer, les réglages sont animés: OUI pour chaque touche provoquant un chaos massif. –
Ricki, d'excellentes suggestions, allez l'essayer ce soir. Merci!! –
J'ai fait presque exactement cette solution avant et cela fonctionne très bien. le seul changement est que je l'ai fait animé: NON. le 'scrollViewDidScroll:' va être appelé extrêmement souvent pendant le défilement, de sorte que le reste apparaîtra animé de toute façon sans le définir explicitement. Cela permettra d'économiser du temps CPU pour la même expérience pour l'utilisateur. –