Obtenir la position de défilement de UIPageViewController
Je suis à l'aide d'un UIPageViewController
, et j'ai besoin d'obtenir la position de défilement de la ViewController que l'utilisateur fait glisser afin que je puisse partiellement fondu de certains actifs, tandis que la vue est la transition vers la prochaine UIViewController
.
Le délégué et source de données les méthodes de UIPageViewController
ne semblent pas fournir tout accès au présent, et à l'intérieur je suis en supposant que le UIPageViewController
doit être l'aide d'un rouleau vue quelque part, mais il ne semble pas directement la sous-classe donc je ne suis pas en mesure d'appeler
func scrollViewDidScroll(scrollView: UIScrollView) {
}
J'ai vu quelques messages d'autres suggestion pour saisir une référence à la pageViewController!.view.subviews
et puis, le premier indice est un scrollView, mais cela semble très hacky. Je me demande s'il y a de plus standard de la manière de gérer cela.
- Puis-je demander pourquoi êtes-vous à l'aide de la page vue ensuite, le contrôleur? Serait une simple scrollview travail à la place?
- J'ai généralement trouvé UIPageViewController être extrêmement manquant à la fois à la fonctionnalité et à combien je peux le personnaliser. J'ai presque toujours à l'aide d'un défilement de la vue sur la collecte de vue à la place.
- Je suis en utilisant pageViewController, parce qu'elle fournit près exactement une fonctionnalité intégrée à la chose que nous construisons, je ne pouvais le code d'une UIScrollView, mais j'espérais que pageViewController serait assez robuste pour fournir cette relativement simple, mais il ressemble, il ne peut pas l'avoir.
- Que donne-t-il qui manque en général scrollview? Comme mentionné ci-dessus par AdamPro13, j'ai moi aussi toujours utiliser mon propre scrollviews.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez rechercher pour le UIScrollView à l'intérieur de votre
UIPageViewController
. Pour ce faire, vous aurez à mettre en œuvre laUIScrollViewDelegate
.Après que vous pouvez obtenir votre scrollView:
Après cela, vous êtes en mesure d'utiliser toutes les UIScrollViewDelegate-méthodes et de sorte que vous pouvez remplacer le
scrollViewDidScroll
méthode où vous pouvez obtenir le scrollPosition:Ou si vous voulez un one-liner:
Semblable à de Christian de réponse, mais un peu plus Rapide (et pas inutilement en continuant à boucle à travers la vue.les sous-vues):
UIPageViewController de défilement ne fonctionne pas comme d'habitude scrollview et vous ne pouvez pas obtenir le scrollView.contentOffset comme les autres scrollViews.
voici donc une astuce pour obtenir ce qu'il se passe lorsque l'utilisateur fait défiler :
d'abord, vous devez trouver la scrollview et de l'ensemble de délégué à courant viewController comme d'autres réponses a dit.