Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Pircate/EachNavigationBar
A custom navigation bar for each view controller.
https://github.com/Pircate/EachNavigationBar
carthage cocoapods navigationbar swift
Last synced: 4 months ago
JSON representation
A custom navigation bar for each view controller.
- Host: GitHub
- URL: https://github.com/Pircate/EachNavigationBar
- Owner: Pircate
- License: mit
- Created: 2018-04-19T05:27:28.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T01:43:41.000Z (10 months ago)
- Last Synced: 2024-04-27T01:39:31.638Z (10 months ago)
- Topics: carthage, cocoapods, navigationbar, swift
- Language: Swift
- Homepage:
- Size: 5.99 MB
- Stars: 584
- Watchers: 16
- Forks: 69
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - EachNavigationBar
README
# EachNavigationBar
[](https://github.com/Pircate/EachNavigationBar/actions?query=workflow%3ALint)
[](http://cocoapods.org/pods/EachNavigationBar)
[](https://github.com/Carthage/Carthage)
[](http://cocoapods.org/pods/EachNavigationBar)
[](https://cocoapods.org/pods/EachNavigationBar)
[](https://github.com/Pircate/EachNavigationBar/blob/master/README_CN.md)[中文文档](https://github.com/Pircate/EachNavigationBar/blob/master/README_CN.md)
## Example
To run the example project, clone the repo, and run `pod install` from the Example directory first.
## Requirements
* iOS 9.0
* Swift 4.2## Installation
EachNavigationBar is available through [CocoaPods](http://cocoapods.org) or [Carthage](https://github.com/Carthage/Carthage). To install
it, simply add the following line to your Podfile or Cartfile:#### Podfile
```ruby
pod 'EachNavigationBar'
```#### Cartfile
```ruby
github "Pircate/EachNavigationBar"
```## Overview

## Usage
### Import
``` swift
import EachNavigationBar
```### Enable
``` swift
let nav = UINavigationController(rootViewController: vc)
nav.navigation.configuration.isEnabled = true
```### Setting
#### Global``` swift
nav.navigation.configuration.titleTextAttributes = [.foregroundColor: UIColor.blue]nav.navigation.configuration.barTintColor = UIColor.red
nav.navigation.configuration.shadowImage = UIImage(named: "shadow")
nav.navigation.configuration.setBackgroundImage(UIImage(named: "nav"), for: .any, barMetrics: .default)
nav.navigation.configuration.backItem = UINavigationController.Configuration.BackItem(style: .title("返回"))
nav.navigation.configuration.prefersLargeTitles = true
nav.navigation.configuration.largeTitle.displayMode = .always
```#### Each view controller
##### Normal
``` swift
navigation.bar -> EachNavigationBar -> UINavigationBar
navigation.item -> UINavigationItem// hide navigation bar
navigation.bar.isHidden = true// remove blur effect
navigation.bar.isTranslucent = false// hides shadow image
navigation.bar.isShadowHidden = true// set status bar style
navigation.bar.statusBarStyle = .lightContent// if you want change navigation bar position
navigation.bar.automaticallyAdjustsPosition = false// item padding
navigation.bar.layoutPaddings = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 8)// shadow
navigation.bar.shadow = Shadow(
color: UIColor.black.cgColor,
opacity: 0.5,
offset: CGSize(width: 0, height: 3)
)
```#### Alpha
```swift
// set bar alpha
navigation.bar.alpha = 0.5// set title alpha
navigation.bar.setTitleAlpha(0.5)// set barButtonItem alpha
navigation.bar.setTintAlpha(0.5)
// if barButtonItem is customView
navigation.item.leftBarButtonItem?.customView?.alpha = 0.5
// if barButtonItem customized tintColor
navigation.item.leftBarButtonItem?.tintColor = navigation.item.leftBarButtonItem?.tintColor?.withAlphaComponent(0.5)
```#### Additional height or view
```swift
// navigation bar additional height
navigation.bar.additionalHeight = 14// navigation bar additional view
navigation.bar.additionalView = UIView()
```#### BackBarButtonItem
```swift
// set back bar button item
navigation.bar.backBarButtonItem = .init(style: .title("Back"), tintColor: .red)// allow back
navigation.bar.backBarButtonItem.shouldBack = { item in
// do something
return false
}// handler before back
navigation.bar.backBarButtonItem.willBack = {
// do something
}// handler after back
navigation.bar.backBarButtonItem.didBack = {
// do something
}```
#### LargeTitle(iOS 11.0+)
``` swift
// enable
navigation.bar.prefersLargeTitles = true// display mode
navigation.item.largeTitleDisplayMode = .always// alpha
navigation.bar.setLargeTitleAlpha(0.5)
```## Author
Pircate, [email protected]
## License
EachNavigationBar is available under the MIT license. See the LICENSE file for more info.