A lightweight scrollable UINavigationBar that follows a UIScrollView. This project was inspired by the navigation bar functionality seen in the Chrome, Facebook and Instagram iOS apps.
Add pod GTScrollNavigationBar
to your Podfile.
Add the GTScrollNavigationBar
folder to your project. GTScrollNavigationBar
uses ARC, so if you have a project that doesn't use ARC, add the -fobjc-arc
compiler flag to the GTScrollNavigationBar
files.
Set up the navigation controller to use GTScrollNavigationBar
:
#import "GTScrollNavigationBar.h"
self.navController = [[UINavigationController alloc] initWithNavigationBarClass:[GTScrollNavigationBar class]
toolbarClass:nil];
[self.navController setViewControllers:@[self.mainViewController] animated:NO];
In your view controller which has a UIScrollView
, e.g. UITableViewController
, set the UIScrollView object to the GTScrollNavigationBar
in viewWillAppear:
or viewDidAppear:
by:
self.navigationController.scrollNavigationBar.scrollView = self.tableView;
To unfollow the scrollView, simply set scrollView
property to nil
self.navigationController.scrollNavigationBar.scrollView = nil;
Implement scrollViewDidScrollToTop:
in the view controller to reset the navigation bar's position
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
[self.navigationController.scrollNavigationBar resetToDefaultPositionWithAnimation:NO];
}