这是一个轻量级的可滚动 UINavigationBar,它跟随 UIScrollView。该项目受到 Chrome、Facebook 和 Instagram iOS 应用程序中导航栏功能的启发。
将 GTScrollNavigationBar
文件夹添加到您的项目中。由于 GTScrollNavigationBar
使用 ARC,因此如果您有一个不使用 ARC 的项目,请添加 -fobjc-arc
编译器标志到 GTScrollNavigationBar
文件中。
设置导航控制器以使用 GTScrollNavigationBar
#import "GTScrollNavigationBar.h"
self.navController = [[UINavigationController alloc] initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:nil];
[self.navController setViewControllers:@[self.mainViewController] animated:NO];
在您的 UIScrollView
观控制器中,例如 UITableViewController
,通过以下方式在 viewWillAppear:
或 viewDidAppear:
中将 UIScrollView 对象设置为 GTScrollNavigationBar
self.navigationController.scrollNavigationBar.scrollView = self.tableView;
要取消关注 scrollView,只需将 scrollView
属性设置为 nil
self.navigationController.scrollNavigationBar.scrollView = nil;
在视图控制器中实现 scrollViewDidScrollToTop:
以重置导航栏的位置
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
[self.navigationController.scrollNavigationBar resetToDefaultPositionWithAnimation:NO];
}