2010-09-10 22 views
1

Ceci est plus d'une vérification car je crois que c'est juste mais c'est beaucoup de travail si je me trompe.Deuxième UIScrollView répondant lors de l'utilisation d'un UIScrollView

Je veux fondamentalement atteindre un positionnement fixe avec un scrollView. Je veux avoir une liste en haut toujours visible, qui ne défile que horizontalement et ensuite une scrollview en-dessous pour déplacer les informations qui défilent verticalement et horizontalement. Je suppose que j'ai besoin de sous-classer UIScrollView et de remplacer touchesBegan, touchesMoved et touchEnded pour envoyer le contact aux deux UIScrollViews.

Est-ce exact ou faux?

Vive

Répondre

1

Redéfinition les événements tactiles sur une vue de défilement est probablement pas ce que vous voulez faire. Vous pouvez simplement utiliser une vue de défilement unique, puis dans les vues -layoutSubviews de la vue parente ou dans les méthodes de délégué de la vue déroulante, vous pouvez déplacer la liste afin qu'elle soit toujours à la même position verticale (utilisez la propriété contentOffset de la vue défilement être). La méthode delegate et -layoutSubviews sont toutes deux appelées avant que le dessin ne se produise après le défilement de l'affichage défilant. Par conséquent, en repositionnant toujours votre vue là où vous le souhaitez, elle semble rester fixe pour l'utilisateur.

+0

Oh ok, alors UIView dans UIScrollView que vous définissez la position dans layoutSubview ou la méthode de délégué? Je ne me base sur rien, mais cela va-t-il causer un problème de performance en déplaçant constamment une vue? – Rudiger

+0

Non, cela ne causera pas de problème de performance. Si vous voulez voir un exemple en action, regardez UITableView. Il l'utilise pour épingler l'en-tête de la section en cours en haut de l'écran lorsque vous faites défiler vers le haut. –

+0

Bravo pour cela, a travaillé comme un charme et beaucoup plus propre aussi. – Rudiger