Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. HidingNavigationBar

HidingNavigationBar

MITSwift2.0.3

A Swift library to automatically hide and show navigation bars and tab bars as users scroll in iOS apps.

GitHubGitHub
1.0k stars125 forks0 contributors

What is HidingNavigationBar?

HidingNavigationBar is a Swift library for iOS that automatically hides and shows navigation bars, toolbars, and tab bars as users scroll. It solves the problem of cluttered interfaces by dynamically managing screen space, providing a cleaner, more immersive reading experience similar to apps like Safari or Twitter.

Target Audience

iOS developers building scroll-heavy applications like readers, feeds, or content browsers who want to implement dynamic navigation bar behaviors.

Value Proposition

Developers choose HidingNavigationBar for its straightforward API, support for multiple UI element combinations, and customizable scrolling resistance, avoiding the complexity of manually implementing these interactions.

Overview

Easily hide and show a view controller's navigation bar (and tab bar) as a user scrolls

Use Cases

Best For

  • Implementing Safari-style hiding navigation bars in content readers
  • Adding dynamic toolbar behavior in scrollable iOS interfaces
  • Maximizing screen space in feed-based applications
  • Creating immersive scrolling experiences in detail views
  • Managing tab bar visibility in tabbed navigation apps
  • Integrating UIRefreshControl with automatic bar hiding

Not Ideal For

  • Apps using non-translucent navigation bars, as the library explicitly requires translucent bars to function.
  • Projects with complex, nested scroll views or custom scrolling behaviors that don't fit the single scroll view delegate model.
  • Teams wanting a drop-in, zero-configuration solution without manually relaying view controller lifecycle methods.

Pros & Cons

Pros

Simple Integration

Setup involves initializing a HidingNavigationBarManager and relaying a few lifecycle and delegate methods, making it straightforward to add to existing view controllers as shown in the usage example.

Multiple UI Support

Manages combinations like UINavigationBar with extension views, toolbars, or tab bars, demonstrated in the README with screenshots for each scenario.

Customizable Behavior

Offers features like expansion resistance and foreground action settings, allowing developers to fine-tune hiding and showing based on scroll distance and app state.

UIRefreshControl Integration

Explicitly supports UIRefreshControl by allowing assignment to the manager, ensuring compatibility with pull-to-refresh functionality in scroll views.

Cons

Translucency Requirement

Only works with UINavigationBars that have translucent set to true, limiting design options for apps that prefer opaque bars, as admitted in the README notes.

Boilerplate Code Overhead

Requires manual implementation in each view controller, including relaying lifecycle methods and delegate functions, which can be repetitive and error-prone in large codebases.

Limited to UIKit

No support for SwiftUI or modern iOS frameworks mentioned, making it less suitable for apps transitioning to newer architectures or targeting cross-platform development.

Frequently Asked Questions

Quick Stats

Stars1,035
Forks125
Contributors0
Open Issues31
Last commit3 years ago
CreatedSince 2015

Tags

#mobile-ui#ios#scroll-behavior#ui-components#cocoapods#navigation-bar#swift-library#carthage#user-experience

Built With

S
Swift

Included in

iOS51.7k
Auto-fetched 1 hour ago

Related Projects

AMScrollingNavbarAMScrollingNavbar

Scrollable UINavigationBar that follows the scrolling of a UIScrollView

Stars6,005
Forks632
Last commit3 years ago
LTNavigationBarLTNavigationBar

UINavigationBar Category which allows you to change its appearance dynamically

Stars4,433
Forks671
Last commit7 years ago
KMNavigationBarTransitionKMNavigationBarTransition

A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations. And you don't need to write any line of code for it, it all happens automatically.

Stars3,362
Forks452
Last commit2 years ago
BusyNavigationBarBusyNavigationBar

A UINavigationBar extension to show loading effects

Stars984
Forks55
Last commit9 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub