2010-06-10 5 views
4

J'ai une sous-classe UIScrollView avec une certaine sous-vue que je voudrais empêcher de défiler (alors que tous les autres sous-affichages défilent normalement).Empêcher la sous-vue de défiler dans un UIScrollView

L'exemple le plus proche de ce que je peux penser est "bande d'index" UITableView sur le côté droit (regardez dans l'application Contacts pour voir un exemple). Je devine que c'est une sous-vue de la table (scrollview) mais elle ne bouge pas quand l'utilisateur fait défiler.

Je n'arrive pas à faire en sorte que ma sous-vue reste en place! Comment puis-je accomplir cela?

Répondre

5

L'astuce consiste à ajuster le cadre de la sous-vue « non-scrollable » à l'intérieur -layoutSubviews.

+0

pouvez-vous ajouter du code s'il vous plaît? – filou

+0

- (void) layoutSubviews { [super layoutSubviews]; self.label.x = CONTENT_OFFSET + self.contentOffset.x; } – HotJard

+0

Pourquoi la définition du cadre dans 'layoutSubviews' ne permet-elle pas le défilement des sous-vues? – Dschee

-1

Vous pouvez définir sa propriété appelée userInteractionEnabled NO

+0

Non. Cela empêchera le scrollview de défiler. Au lieu de cela, j'essaie d'empêcher * un * des sous-vues de scrollview de bouger pendant que tout le reste défile. – jbrennan

2

Ajoutez la vue que vous ne voulez pas déplacer en tant que vue de frère de la vue déroulante au-dessus de la vue défilée et non en tant que sous-vue.

+0

D'accord, si vous ne voulez pas qu'il défile, supprimez-le simplement de la sous-vue et ajoutez-le en tant que sous-vue supplémentaire avec un cadre approprié. –

Questions connexes