A scrollable UINavigationBar that follows a UIScrollView
Switch branches/tags
Clone or download

README.md

GTScrollNavigationBar

CocoaPods Version Build Status Coverage Status

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.

GTScrollNavigationBar Screenshot 1 GTScrollNavigationBar Screenshot 2

Installation

CocoaPods

Add pod GTScrollNavigationBar to your Podfile.

Manually

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.

Usage

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

Contact

@luugiathuy