2011-10-17 5 views
0

J'ai modifié la zone de l'écran dans laquelle l'utilisateur peut naviguer en utilisant des gestes en créant une vue arbitraire (appelée gestureRegion) et en lui assignant gestureRecognizers.gestureRecognizers - new region

Mais cela ne fait que surpasser le geste du clic. Les gestes de déplacement vers la droite et vers la gauche semblent toujours fonctionner sur toute la page. Y a-t-il un moyen de dépasser les gestes de balayage? Ou désactiver complètement?

Mon code:

self.gestureRegion.gestureRecognizers = self.pageViewController.gestureRecognizers; [self.pageViewController.view addSubview: gestureRegion];

d'Apple Doc:

gestureRecognizers Un tableau d'objets UIGestureRecognizer qui sont configurés pour gérer l'interaction de l'utilisateur. (lecture seule) @property (nonatomic, en lecture seule) NSArray * gestureRecognizers Discussion Ces identificateurs de mouvement sont initialement attachés à une vue dans la hiérarchie du contrôleur de vue de page. Pour changer la région de l'écran dans laquelle l'utilisateur peut naviguer en utilisant des gestes, ils peuvent être placés sur une autre vue. Disponibilité Disponible dans iOS 5.0 et versions ultérieures. déclaré dans UIPageViewController.h

Répondre

1

Il semble que pour se débarrasser du coup, mais pas le robinet que vous pouvez retirer le geste Pan de la vue reconnaisseur ... Je mets cela dans le viewDidLoad de la classe RootViewController dans le Xcode application de vue de page générée automatiquement.

for (UIGestureRecognizer *gR in self.pageViewController.gestureRecognizers) { 
    if ([gR isKindOfClass:[UIPanGestureRecognizer class]]) { 
     [[gR view] removeGestureRecognizer:gR]; 
    } 
} 
Questions connexes