hks

HKScrollingNavAndTabBar

An easy to use library that manages hiding and showing of navigation bar, tab bar or toolbar when user scrolls.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

41

Maintenance

Last Commit

4yrs ago

Contributors

3

Package

Dependencies

0

License

MIT

Categories

Readme

HKScrollingNavAndTabBar

Pod Version Pod License GitHub tag

An easy to use library that manages hiding and showing of navigation bar, tab bar or toolbar when user scrolls.

#Features

Supports following view elements:

  • UINavigationBar
  • UINavigationBar and a UIToolbar
  • UINavigationBar and a UITabBar
  • UINavigationBar and a Custom UITabBar (such as exceed center button)

Support function:

  • Hiding/showing when scrolling
  • Control hiding/showing separately
  • Alpha fade when scrolling
  • Set UINavigationBar position when UINavigationBar hidden
  • Scrolling state change block
  • Works with ARC and iOS >= 8

###Support functions ![Alt text] (https://github.com/HustHank/HKScrollingNavAndTabBar/blob/master/Screenshot/ScrollingNavAndTabScreenshot.png)

###UINavigationBar Alt text

###UINavigationBar and a UIToolbar Alt text

###UINavigationBar and a UITabBar Alt text

###UINavigationBar and an exceed UITabBar Alt text

###Control hiding/showing separately Alt text

###Set UINavigationBar position Alt text

#Installation

CocoaPods

The easiest way of installing HKScrollingNavAndTabBar is via CocoaPods.

  • pod 'HKScrollingNavAndTabBar'
  • #import <UIViewController+HKScrollingNavAndTabBar.h> where you want to scrolling navigationBar or tabBar.

Old-fashioned way

  • Add HKScrollingNavAndTabBar folder to your project.
  • #import "UIViewController+HKScrollingNavAndTabBar.h" where you want to scrolling navigationBar or tabBar.

#Usage In UIViewController: Start scrolling navigation bar while a scrollView scroll:

[self hk_followScrollView:self.scrollView];

Stop scrolling navigation bar:

[self hk_stopFollowingScrollView];

Scrolling with tab bar:

[self hk_managerBotomBar:self.toolBar]

Or scrolling with tool bar:

[self hk_managerBotomBar:self.tabBarController.tabBar]

Scrolling without navigation bar:

[self hk_managerTopBar:nil];

Scrolling without tab bar:

[self hk_managerBotomBar:nil];

Set nav bar contracted at top:

self.hk_topBarContracedPostion = HKScrollingTopBarContractedPositionTop;

Or set nav bar contracted at top:

self.hk_topBarContracedPostion = HKScrollingTopBarContractedPositionStatusBar;

Monitor nav or tab bar state:

[self hk_setBarDidChangeStateBlock:^(HKScrollingNavAndTabBarState state) {
        switch (state) {
            case HKScrollingNavAndTabBarStateExpanded:
                NSLog(@"navbar expended");
                break;
            case HKScrollingNavAndTabBarStateExpanding:
                NSLog(@"navbar is expending");
                break;
            case HKScrollingNavAndTabBarStateContracting:
                NSLog(@"navbar is contracting");
                break;
            case HKScrollingNavAndTabBarStateContracted:
                NSLog(@"navbar contracted");
                break;
        }
       
    }];

Below code is an example of how your UIViewController subclass should look:

- (void)viewDidLoad {
    [super viewDidLoad];

    [self hk_followScrollView:self.tableView];
    [self hk_managerTopBar:self.navigationController.navigationBar];
    [self hk_managerBotomBar:self.tabBarController.tabBar];
        [self hk_setBarDidChangeStateBlock:^(HKScrollingNavAndTabBarState state) {
        switch (state) {
            case HKScrollingNavAndTabBarStateExpanded:
                NSLog(@"navbar expended");
                break;
            case HKScrollingNavAndTabBarStateExpanding:
                NSLog(@"navbar is expending");
                break;
            case HKScrollingNavAndTabBarStateContracting:
                NSLog(@"navbar is contracting");
                break;
            case HKScrollingNavAndTabBarStateContracted:
                NSLog(@"navbar contracted");
                break;
        }
       
    }];
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self hk_expand];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self hk_expand];
}

- (void)dealloc {
    [self hk_stopFollowingScrollView];
}

#Note HKScrollingNavAndTabBar only works with UINavigationBars that have translucent set to YES.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100