Méthode de délégué UIPageViewController similaire à scrollViewDidScroll: (UIScrollview *) scrollview

J'utilise un UIPageViewController pour balayer une série de viewcontrollers. Je voudrais que l'arrière-plan du viewcontroller parent effectue une transition en douceur entre les colors lors du balayage, en fonction de la position du défilement entre les vues. J'espérais que UIPageViewController aurait une méthode de délégué similaire à scrollViewDidScroll avec la position, mais cela ne semble pas le cas.

Existe-t-il une méthode alternative ou une méthode similaire pour exposer la position du balayage à mesure qu'il se produit / change?

EDIT : Depuis scrollview ne semble pas être exposé, je suis venu avec une solution perm / temp. Lors de la transition entre les pages, je transfère la couleur de fond parent sur une animation de 1 seconde. Cela ne lie pas directement le balayage, ou permettre des demi-balayages, etc. Mais pour les balayages réguliers d'un côté à l'autre, il accomplit l'effet lisse désiré au lieu d'un changement de couleur instantané.

// code that occurs when a pageControl swipe occurs. UIColor *destinationColor = [UIColor redColor]; // the desired end color [UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ self.pageViewController.view.backgroundColor = destinationColor; } completion:nil ]; 

Bien que le UIScrollView de UIPageViewController ne soit pas exposé par défaut, il n'est pas si difficile à find, donc vous pouvez faire ce que vous voulez en faisant de UIScrollViewDelegate votre controller de vue et ensuite quelque chose comme ça dans la méthode viewDidLoad ou similaire:

 for (UIView *view in pageViewController.view.subviews) { if ([view isKindOfClass:[UIScrollView class]]) { ((UIScrollView *)view).delegate = self; break; } } 

Maintenant, votre controller de vue peut implémenter scrollViewDidScroll: et être capable de suivre la transition du controller de vue de page.

Si vous voulez dire que vous voulez la transition entre les deux controllers de vue pour suivre le doigt de l'user lors de leur balayage, définissez la source de données et implémentez les methods: viewControllerBeforeController et viewControllerAfterController . Si ceux-ci sont implémentés, UIPageViewController implémentera automatiquement un outil de reconnaissance de mouvement qui suit le balayage de l'user et anime la transition entre les deux viewControllers en conséquence.