EachNavigationBar_Objc 1.11.3

EachNavigationBar_Objc 1.11.3

kingjiajie 维护。



  • kingjiajie

EachNavigationBar

License Platform

注意,该版本为原作者 EachNavigationBar (https://github.com/Pircate/EachNavigationBar) V1.11.0 版本进行修改。
注意,该版本为原作者 EachNavigationBar (https://github.com/Pircate/EachNavigationBar) V1.11.0 版本进行修改。
注意,该版本为原作者 EachNavigationBar (https://github.com/Pircate/EachNavigationBar) V1.11.0 版本进行修改。

-------(该版本只在1.11.0上修改了对iOS13的支持,原作者后续的特性更新在该副本中没有,如需使用新特性,请移步上面GitHub原作者地址,使用最新版本。谢谢。)(如有侵权,请及时联系,我将立即删除,谢谢)

由于原作者在1.11.0之后发布的版本删除了对OC的支持,后续版本不支持OC进行编译,只支持swift。
由于此前我接入该项目时使用的是OC,所以只能在版本上停留在1.11.0,由于iOS13的更新,1.11.0使用会崩溃,所以修改了原1.11.0代码,使项目支持iOS13。

示例

要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install

需求

  • iOS 9.0
  • Swift 4.2

安装

EachNavigationBar 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 或 Cartfile 中。

Podfile

//pod 最新版本 原作者版本(https://github.com/Pircate/EachNavigationBar)
pod 'EachNavigationBar'

//使用修改版 
pod 'EachNavigationBar' :git => 'https://github.com/kingjiajie/EachNavigationBar_Objc.git' 

概览

用法

导入

Swift

import EachNavigationBar

客观-C

@import EachNavigationBar;

启用

Swift

let nav = UINavigationController(rootViewController: vc)
nav.navigation.configuration.isEnabled = true

客观-C

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
nav.navigation_configuration.isEnabled = YES;

设置

全局

Swift

nav.navigation.configuration.titleTextAttributes = [.foregroundColor: UIColor.blue]

nav.navigation.configuration.barTintColor = UIColor.red

nav.navigation.configuration.shadowImage = UIImage(named: "shadow")

nav.navigation.configuration.backBarButtonItem = .init(style: .image(UIImage(named: "back")), tintColor: UIColor.red)

nav.navigation.configuration.setBackgroundImage(UIImage(named: "nav"), for: .any, barMetrics: .default)

客观-C

nav.navigation_configuration.titleTextAttributes = @{NSForegroundColorAttributeName: UIColor.blueColor};

nav.navigation_configuration.barTintColor = UIColor.redColor;

nav.navigation_configuration.shadowImage = [UIImage imageNamed:@"shadow"];

nav.navigation_configuration.backBarButtonItem = [[BackBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back"]];

[nav.navigation_configuration setBackgroundImage:[UIImage imageNamed:@"nav"] for:UIBarPositionAny barMetrics:UIBarMetricsDefault];

每个视图控制器

普通

Swift

navigation.bar  -> EachNavigationBar -> UINavigationBar
navigation.item -> UINavigationItem

// hide navigation bar
navigation.bar.isHidden = true

// 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)

// remove blur effect
navigation.bar.isTranslucent = false

// hides shadow image
navigation.bar.isShadowHidden = true

// set status bar style
navigation.bar.statusBarStyle = .lightContent

// 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
}

// if you want change navigation bar position
navigation.bar.automaticallyAdjustsPosition = false

// navigation bar additional height
navigation.bar.additionalHeight = 14

// navigation bar additional view
navigation.bar.additionalView = UIView()

// 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))

客观-C

self.navigation_bar.xxx
self.navigation_item.xxx
大标题(iOS 11.0+)

UINavigationController

// enable
nav.navigation.prefersLargeTitles()

UIViewController

// show or hide
navigation.bar.prefersLargeTitles = true

// alpha
navigation.bar.setLargeTitleAlpha(0.5)

作者

原作者信息: Pircate, [email protected]

许可协议

EachNavigationBar 遵循 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。