【发布时间】:2018-01-17 18:19:58
【问题描述】:
在 iOS 11 中,如果我们设置为隐藏,则在滚动 tableView 时 searchBar 会隐藏。向上滚动collectionView时如何隐藏searchBar、navigationBar和tabBar?向下滚动时将它们全部取消隐藏?感谢您的帮助...
【问题讨论】:
标签: ios11 smooth-scrolling collectionview searchbar
在 iOS 11 中,如果我们设置为隐藏,则在滚动 tableView 时 searchBar 会隐藏。向上滚动collectionView时如何隐藏searchBar、navigationBar和tabBar?向下滚动时将它们全部取消隐藏?感谢您的帮助...
【问题讨论】:
标签: ios11 smooth-scrolling collectionview searchbar
class ViewController: UIViewController, UIScrollViewDelegate { codes... })实现scrollViewDidScroll委托方法
func scrollViewDidScroll(scrollView: UIScrollView) {
let pan = scrollView.panGestureRecognizer
let velocity = pan.velocityInView(scrollView).y
if velocity < -5 {
self.navigationController?.setNavigationBarHidden(true, animated: true)
self.navigationController?.setToolbarHidden(true, animated: true)
} else if velocity > 5 {
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.setToolbarHidden(false, animated: true)
}
}
【讨论】:
将 KTang 接受的答案翻译成 Objective-C:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIPanGestureRecognizer *pan = scrollView.panGestureRecognizer;
CGFloat velocity = [pan velocityInView:scrollView].y;
if (velocity < -5) {
[self.navigationController setNavigationBarHidden:YES animated:YES];
[self.navigationController setToolbarHidden:YES animated:YES];
} else if (velocity > 5) {
[self.navigationController setNavigationBarHidden:YES animated:YES];
[self.navigationController setToolbarHidden:YES animated:YES];
}
}
【讨论】: