2009-12-05 5 views
2

Ils « brosse » le sujet dans ce fil, mais il ne répond pas vraiment beaucoup: Stackoverflow UIScrollView questionNesting UIScrollView intérieur UIScrollView Cocoa Touch

J'ai un travail UIScrollView et un UIPageControl ensemble pour présenter un ensemble de vues. (style de balayage standard "écran d'accueil", en l'absence de meilleurs mots)

Chacune de ces vues, à l'intérieur du scrollView, a un menu fin dans la partie inférieure, qui peut également être balayé d'un côté à l'autre. Si quelqu'un se souvient de l'application FaceBook précédente, cela a également eu un menu qui pourrait être balayé horizontalement, cependant, pas encapsulé dans un autre scrollView, mais l'idée est similaire. Ainsi, le scrollView externe fera défiler la vue entière, y compris la vue contenant le scrollView interne, mais le scrollView interne ne changera qu'un menu à l'intérieur de la vue. J'ai déjà fait un test de preuve de concept, ce qui se passe, c'est que les méthodes déléguées sont appelées à la fois dans les scrollViews, quel que soit l'endroit où le balayage a lieu, et le scrollView le plus proche va planter l'application. à droite, mais pas de droite à gauche ...

je sorte de l'impression que cela peut être fait, mais Im va à ce sujet dans le mauvais sens.

Y at-il un moyen de définir quelle zone de l'écran réagit à swipes? c'est-à-dire que le upper supérieur de l'écran appelle un ensemble de méthodes déléguées et le ¼ inférieur appelle un autre ensemble. Peut-être à travers une sorte de médiateur qui attrape les balayages avant qu'ils ne soient "traités" et détermine ensuite quel scrollView devrait réagir?

quelqu'un L'espoir peut me diriger dans la bonne direction sur celui-ci, merci :)

Répondre

2

Qu'en est-de-imbriquant les vues de défilement? Au lieu d'incorporer un scrollview dans un autre scrollview, faites-les frères et sœurs de même niveau d'un UIView parent.

À l'appui de votre imbrication bien, je peux penser à l'application App Store qui vous permet de faire défiler les captures d'écran horizontalement tandis que les rouleaux de description de l'application verticale.

+0

Merci wkw. Oui, vous avez raison, l'App Store a ce genre de fonctionnalité. Je trouve cela un peu bizarre parce que cela change entre le défilement vertical et le défilement horizontal d'une manière étrange. Je pourrais peut-être voir s'il y a un moyen de séparer les scrollViews, ça va être un peu dur car le scrollView interne fait partie des graphismes du scrollView externe. C'est à dire. chaque "Page" dans le rouleau externe a son propre petit scrollView interne auquel ils répondent. C'est en fait aussi la fonctionnalité que vous avez dans l'application photos. Vous pouvez glisser entre les images ou zoom, mais ce sont des cas d'utilisation distincts ... – RickiG

+0

J'ai fini par utiliser l'approche de wkw. Pas besoin de se pencher en arrière pour forcer un composant de framework à faire quelque chose qu'il n'est pas censé faire :) Cela donne aussi une bonne partie de l'encapsulation qui rend tout plus lisible. – RickiG

+0

J'ai fait quelque chose avant la 3.0 (et ça peut être un peu plus facile maintenant) mais j'étais vraiment fier de l'exploit, sinon exaspéré de travailler dessus pendant plusieurs jours ... Je voulais des cellules de table à défilement horizontal. Je faisais une liste des meilleures ventes de NYTimes et tirais les données d'Amazone pour les détails. Donc, chaque rangée de table était une liste (fiction, etc.), et les rangées défilaient pour montrer chaque livre de la liste. Malheureusement, à mi-chemin, un ami m'a alerté de la désapprobation d'Amazon d'utiliser leurs données dans les applications mobiles. – wkw