Как скрыть панель навигации и панель инструментов прокруткой вниз? Swift (например, приложение myBridge)

Я хочу скрыть панель инструментов и панель навигации, когда я прокручиваю страницу вниз. И верните его, когда я прокручу вверх. Как это возможно?

Как я пойду на обнаружение сопротивления? Использую ли я жест панорамы или это с помощью scrollview?

Попробуйте этот простой подход: протестирован в Swift 3

  func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { if(velocity.y>0) { //Code will work without the animation block.I am using animation block incase if you want to set any delay to it. UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: { self.navigationController?.setNavigationBarHidden(true, animated: true) self.navigationController?.setToolbarHidden(true, animated: true) print("Hide") }, completion: nil) } else { UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: { self.navigationController?.setNavigationBarHidden(false, animated: true) self.navigationController?.setToolbarHidden(false, animated: true) print("Unhide") }, completion: nil) } } 

Результат: Updated

введите описание изображения здесь

Примечание. Если вы передаете любые данные из этого VC в другой VC, который встроен в navigationController Вам может понадобиться unhide NavigationBar unhide .

Спасибо всем, как я работал с AMScrollingController.

https://github.com/andreamazz/AMScrollingNavbar

Он обновлен для Swift 3

вы можете попробовать self.navigationController? .hidesBarsOnTap = true в viewDidAppear, также вы можете использовать hide при прокрутке.

Легко сделать это:

 navigationController?.hidesBarsOnSwipe = true 

Вы можете использовать эти строки кода:

 - (void)scrollViewDidScroll: (UIScrollView *)scroll { // UITableView only moves in one direction, y axis CGFloat currentOffset = scroll.contentOffset.y; CGFloat maximumOffset = scroll.contentSize.height - scroll.frame.size.height; // Change 10.0 to adjust the distance from bottom if (maximumOffset - currentOffset <= 10.0) { self.navigationController?.hidden = YES; } else{ self.navigationController?.hidden = NO; } } 
Interesting Posts
Давайте будем гением компьютера.