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];
}