Comment puis-je créer une barre de navigation masquer / masquer comme le font pinterest et de nombreuses autres applications? Je sais que l'idée de base est d'utiliser le délégué UIScrollView et de détecter si je défile vers le haut ou vers le bas et d'afficher la barre de navigation en fonction de cela. Alors devrais-je également ajuster la hauteur de la vue du controller de nav si la barre de navigation est cachée? Comment cela marche-t-il?
J'ai un exemple de projet situé sur github qui fait exactement le style pinterest / piictu 'cacher les trucs UINavigationController / UITabBarController'
J'ai essayé https://github.com/tonymillion/ExpandingView et couru dans un tas de problèmes.
J'ai fini par faire rouler mon propre controller de navigation pour synchroniser toutes les animations et j'ai utilisé ce code scrollview pour savoir si je devais développer ou réduire. iOS> = 5.0
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { MyCustomNavController* navController = (MyCustomNavController*)self.parentViewController; if( [scrollView.panGestureRecognizer translationInView:self.view].y < 0.0f ) { [navController setExpanded:YES animated:YES]; } else if ([scrollView.panGestureRecognizer translationInView:self.view].y > 0.0f ) { [navController setExpanded:NO animated:YES]; } }
J'essayerais probablement de créer mon propre controller de racine avec la barre de défilement comme vue principale et mettre la vue du controller de navigation dedans. Vous ne pouvez pas utiliser la barre de défilement dans la vue navbar, mais je crois que vous n'en avez pas besoin dans ce cas précis.
Si cette approche ne fonctionne pas, je créerais probablement mon propre controller qui imiterait l'apparence du controller de navigation.