Giter Club home page Giter Club logo

gknavigationbar's Introduction

GKNavigationBar

iOS自定义导航栏 - 导航栏联动效果

Build Status License MIT platform languages cocoapods Carthage compatible support

GKNavigationBarViewController的分类实现方式,耦合度底,使用更加便捷

Swift版本请看这里 → GKNavigationBarSwift

框架特性

  • 无侵入性,低耦合性
  • 支持自定义导航栏样式(隐藏、透明等)
  • 支持控制器开关返回手势
  • 支持控制器开关全屏返回手势
  • 支持控制器设置导航栏透明度,可实现渐变效果
  • 完美解决UITableView,UIScrollView滑动手势冲突
  • 可实现push,pop时控制器缩放效果(如:今日头条)
  • 可实现左滑push一个控制器的效果(如:网易新闻)

1.7.0版本升级指南

1.7.0版本重写了导航栏item间距调整的逻辑,1.7.0版本之后导航栏item间距调整只对使用GKCustomNavigationBar的控制器默认开启,其他控制器不会调整导航栏item间距,所以需要注意下面几点:
1、对于使用GKCustomNavigationBar的控制器,无需修改,如果想关闭导航栏间距调整设置gk_disableFixNavItemSpace即可
2、对于使用系统导航栏的控制器,如果想要调整导航栏间距,需要在viewDidLoad中设置gk_openFixNavItemSpace为YES 全局配置是无效的。
3、去掉了shiledItemSpaceVCs属性,可在单独控制器中处理。

使用

1、在AppDelegate中添加导航配置

[GKConfigure setupDefaultConfigure]

2、创建根导航控制器

若要开启手势处理,需使用+ (instancetype)rootVC:(UIViewController *)rootVC方法创建导航控制器

UINavigationController *nav = [UINavigationController rootVC:[GKMainViewController new]];

3、设置导航栏属性(调用即创建)

self.gk_navBackgroundColor = [UIColor red]

安装

CocoaPods
# 将以下内容添加到您的Podfile中:
pod 'GKNavigationBar'

// 只使用手势处理
pod 'GKNavigationBar/GestureHandle'
Carthage
Cartfile文件中添加以下内容
github "QuintGao/GKNavigationBar"

执行carthage update --platform iOS
SPM
在Xcode中点击File->Swift Packages->Add Package Dependency,然后输入https://github.com/QuintGao/GKNavigationBar
手动导入
直接拖入GKNavigationBar文件夹到项目,#import "GKNavigationBar.h",开始使用

常见问题

感谢使用该库,如果在使用过程中遇到问题可查看issue或提交issue,或者进QQ群1047100313

1、手势不生效?
1、查看是否使用了+ (instancetype)rootVC:(UIViewController *)rootVC 方法初始化导航控制器  
2、查看是否在控制器中禁用了手势返回self.gk_interactivePopDisabled = YES,self.gk_fullScreenPopDisabled = YES
2、导航栏不显示?
查看是否调用了跟导航栏相关的方法,如self.gk_navTitle = @"GKNavigationBar"  
注意:只有调用跟导航栏相关的方法才会初始化导航栏!
3、切换控制器的时候出现状态栏显示异常(一半黑一半白等)
解决办法:在控制器初始化方法里面设置状态栏样式
- (instancetype)init {
    if (self = [super init]) {
        self.gk_statusBarStyle = UIStatusBarStyleLightContent;
    }
    return self;
}

4、状态栏相关方法无效?
解决办法:在基类控制器里实现下面两个方法
- (BOOL)prefersStatusBarHidden {
    return self.gk_statusBarHidden;
}

- (UIStatusBarStyle)preferredStatusBarStyle {
    return self.gk_statusBarStyle;
}
5、返回手势如何拦截?
// 重写下面的方法,拦截返回手势
#pragma mark - GKGesturePopHandlerProtocol
- (BOOL)navigationShouldPop {
    // do something
    
    return NO;
}

也可以单独处理点击返回和手势返回

// 重写下面的方法,拦截点击返回
- (BOOL)navigationShouldPopOnClick {
    // do something
    
    return NO;
}
// 重写下面的方法,拦截手势返回
- (BOOL)navigationShouldPopOnGesture {
    // do something
    
    return NO;
}
6、如何与系统导航平滑过渡?
1、开启系统导航过渡处理 nav.gk_openSystemNavHandle = YES;
2、在控制器中设置gk_popDelegate并实现下面的方法
#pragma mark - GKViewControllerPopDelegate
- (void)viewControllerPopScrollBegan {
    
}

- (void)viewControllerPopScrollUpdate:(float)progress {
    // 由于已经出栈,所以self.navigationController为nil,不能直接获取导航控制器
    UIViewController *vc = [GKConfigure visibleViewController];
    vc.navigationController.navigationBar.alpha = 1 - progress;
}

- (void)viewControllerPopScrollEnded:(BOOL)finished {
    // 由于已经出栈,所以self.navigationController为nil,不能直接获取导航控制器
    UIViewController *vc = [GKConfigure visibleViewController];
    vc.navigationController.navigationBar.alpha = 1;
    vc.navigationController.navigationBarHidden = finished;
}

版本记录

最近更新
* 1.9.0 - 2024.03.21 1、tabBar截屏清除优化 2、增加隐私清单
* 1.8.9 - 2024.01.16 修复开启缩放后的异常问题 #111
* 1.8.8 - 2023.10.13 适配iOS17,修复非全屏模式的bug
* 1.8.7 - 2023.08.15 导航栏部分属性支持StoryBoard,手势处理优化
* 1.8.6 - 2023.07.17 修复导航栏间距调整可能无效的问题
* 1.8.5 - 2023.06.28 导航栏宽度适配Mac
* 1.8.4 - 2023.03.29 修复导航栏间距调整bug
* 1.8.3 - 2023.03.24 1、push、pop转场动画修改为只截取tabBar播放 2、缩放转场动画优化
* 1.8.2 - 2022.12.27 iPhone 14适配优化
* 1.8.1 - 2022.09.29 移除导航栏上的点击事件
* 1.8.0 - 2022.09.16 导航栏高度适配iPhone 14系列新设备
* 1.7.9 - 2022.08.18 修复侧滑返回可能出现导航栏间距不准确问题
* 1.7.8 - 2022.08.16 屏蔽导航栏的touches事件和点击事件
* 1.7.7 - 2022.07.29 修复当子控制器有GKNavigationBar时,导航栏item间距失效的问题 #103
* 1.7.6 - 2022.07.22 修复只设置backImage后,返回按钮显示错误的问题
* 1.7.5 - 2022.06.22 优化backImage的显示
* 1.7.4 - 2022.04.20 修复设置背景色为[UIColor clearColor]无效的bug #100,#101
* 1.7.3 - 2022.04.15 导航栏设置适配iOS13及以后
* 1.7.2 - 2022.03.21 细节优化,修复push UITabBarController时的问题
* 1.7.1 - 2022.03.09 根控制器左侧item处理优化,暗黑模式适配优化
* 1.7.0 - 2022.02.25 导航栏item间距优化处理
历史更新
* 1.6.6 - 2022.01.26 新机型适配优化
* 1.6.5 - 2022.01.20 修复设置gk_disableFixNavItemSpace后gk_disableFixSpace无效的bug#93
* 1.6.4 - 2022.01.04 新增darkBackgroundImage、darkLineImage等适配暗黑模式导航图片
* 1.6.2 - 2021.12.29 修复设置gk_disableFixSpace为YES无效的bug #16
* 1.6.1 - 2021.11.08 1、修复设置gk_systemGestureHandleDisabled后TabBar偏移问题 #90
                   2、新增gk_hidesBottomBarWhenPushed,可全局配置push时是否隐藏TabBar
* 1.6.0 - 2021.09.09 修复visibleViewController方法返回错误问题
* 1.5.9 - 2021.06.25 配置类增加backgroundImage,可设置全局导航图片
* 1.5.8 - 2021.06.09 增加恢复系统导航栏显示的逻辑及方法 #86
* 1.5.7 - 2021.05.20 修复bug #78,创建导航栏item方法优化
* 1.5.6 - 2021.05.18 优化导航栏返回按钮及高度处理#77,手势处理优化
* 1.5.5 - 2021.05.14 修复导航栏间距失效的问题#76
* 1.5.4 - 2021.05.12 修复可能提前触发viewDidLoad方法的问题
* 1.5.3 - 2021.05.07 修复直接设置背景色无效的问题#71,#74,增加对非全屏的支持
* 1.5.2 - 2021.04.06 增加协议方法,解决返回手势与WKWebView中的手势冲突问题
* 1.5.1 - 2021.03.09 返回手势优化,新增backStyle对应的image,可全局配置
* 1.5.0 - 2021.03.05  
----1、优化状态栏样式修改及显隐方法,可以不用在基类实现相关方法  
----2、导航栏添加机制优化,修复某些情况下可能出现两个导航栏的bug  
----3、增加全局开启UIScrollView手势处理方法
* 1.4.3 - 2021.02.23 导航栏高度适配优化,导航栏间距调整优化,控制器增加禁止导航栏间距调整属性#62 #67
* 1.4.2 - 2021.02.20 返回拦截优化,增加同时处理点击返回和手势返回的方法
* 1.4.1 - 2021.02.07 暗黑模式适配优化,导航栏背景色和分割线颜色支持设置动态颜色
* 1.4.0 - 2020.12.25 修复边缘滑动返回失效的bug #60
* 1.3.9 - 2020.12.24 手势处理优化,解决可能出现的卡死问题,push、pop手势灵敏度优化
* 1.3.7 - 2020.12.05 手势处理优化,增加禁用系统手势处理属性
* 1.3.6 - 2020.12.02 修复iPhone 12,iPhone 12 Pro机型导航栏间距调整不准确的bug
* 1.3.4 - 2020.12.01 修复可能出现的卡死情况#53
* 1.3.3 - 2020.11.29 手势滑动优化,支持与系统导航平滑衔接、控制器屏蔽支持部分匹配
* 1.3.0 - 2020.10.29 功能模块拆分,可按需pod不同模块
* 1.2.0 - 2020.10.26 优化代码宏定义,增加自定义转场demo
* 1.1.8 - 2020.10.22 适配iPhone 12 系列手机,增加自定义转场动画属性
* 1.1.6 - 2020.09.09 修复左滑push卡住不动的bug
* 1.1.5 - 2020.08.14 修复屏蔽控制器无效的bug
* 1.1.3 - 2020.07.28 修复导航栏标题或颜色不生效的bug
* 1.1.2 - 2020.07.27 修复方法交换可能带来的crash问题
* 1.1.1 - 2020.07.23 修复手势处理对根控制器的影响
* 1.1.0 - 2020.07.22 修复手势处理存在的问题,增加属性可屏蔽某些控制器对手势处理的影响
* 1.0.9 - 2020.07.16 增加gk_backImage,可自定义返回按钮图片
* 1.0.8 - 2020.07.06 增加某些控制器对导航栏间距调整的影响
* 1.0.7 - 2020.06.22 设置导航栏间距不再局限于GKNavigationBar
* 1.0.6 - 2020.06.18 修复设置导航栏间距失效的bug
* 1.0.0 - 2020.01.14 修复设置某个导航栏间距后其他导航栏间距不准确问题
* 0.0.5 - 2020.01.02 修复某些情况下状态栏显示异常问题
* 0.0.4 - 2019.12.22 优化状态栏切换功能
* 0.0.3 - 2019.11.12 修复设置导航栏左右间距无效的问题
* 0.0.2 - 2019.11.04 优化代码,解决只调用gk_navigationItem时导航栏不出现的bug
* 0.0.1 - 2019.11.03 对GKNavigationBarViewController做了修改,使用更方便

作者

            

回到顶部

gknavigationbar's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gknavigationbar's Issues

状态栏设置无效

self.gk_statusBarStyle = UIStatusBarStyleLightContent;
viewDidLoad当中设置无效

设置无效果

按照这样的步骤。通过cocoapods 集成

1、在AppDelegate中添加导航配置
[GKConfigure setupDefaultConfigure]
2、创建根导航控制器
然后是tabbar 里设置的
NSArray *vcs = @[vc1,vc2,vc3,vc4];
NSMutableArray *viewControllers = [NSMutableArray arrayWithCapacity:0];
[vcs enumerateObjectsUsingBlock:^(UIViewController *obj, NSUInteger idx, BOOL * _Nonnull stop) {
UINavigationController *nav = [UINavigationController rootVC:obj];
[viewControllers addObject:nav];
}];
self.viewControllers = viewControllers;
3、设置导航栏属性(调用即创建)
self.gk_statusBarHidden = YES;
self.gk_navLineHidden = NO;这些设置都无效

影响原有的导航

引入之后,不做任何操作,影响其他的导航显示,自动向左右偏移
图片

还有个问题

@implementation GKBaseAnimatedTransition

这么写

  • (instancetype)transitionWithScale:(BOOL)isScale {
    return [[GKBaseAnimatedTransition alloc] initWithScale:isScale];
    }

否则 我手动拖你的项目到我的项目里面编译不通过,因为Multiple methods named 'initWithScale:' found with mismatched result, parameter type or attributes
全局搜索 发现是和 YYKit 里面的 YYImageCoder 的initWithScale 冲突
改正以后编译通过。

cocopods problems

[!] CocoaPods could not find compatible versions for pod "GKNavigationBar":
In Podfile:
GKNavigationBar (~> 1.1.3)

None of your spec sources contain a spec satisfying the dependency: GKNavigationBar (~> 1.1.3).

You have either:

  • out-of-date source repos which you can update with pod repo update or with pod install --repo-update.
  • mistyped the name or version.
  • not added the source repo that hosts the Podspec to your Podfile.

返回按钮

你的按钮大小固定了,这样我替换了图片也没用,这样间距设置不了,可以提供一个返回按钮自定义的吗

经过测试KSYMediaPlayback 的 prepareToPlay会影响禁止侧滑(我自己打断点看源码已经解决,望作者采纳)

  • (void)viewDidLoad {
    [super viewDidLoad];
    self.gk_interactivePopDisabled = YES;
    self.gk_fullScreenPopDisabled = YES;
    WeakSelf
    [self requestAdBlock:^(id data) {
    if ((Boolean)data) {

          [weakSelf addPlayVideo];
          [weakSelf dataGet];
    
      }else{
    
          [weakSelf.navigationController popViewControllerAnimated:YES];
    
      }
    

    }];
    //
    [self addNotifi];
    }

在SceneDelegate.m
-(UINavigationController *)navigationController{
if (!_navigationController) {
// _navigationController = [[UINavigationController alloc] initWithRootViewController:self.customSYSUITabBarController];
_navigationController = [UINavigationController rootVC:self.customSYSUITabBarController
transitionScale:NO];
_navigationController.navigationBar.hidden = YES;
}return _navigationController;
}

[self.mkPlayVideo.mkPlayer prepareToPlay];在addPlayVideo里面,目前解决方案还在研讨中ing

https://www.jianshu.com/p/4a569fd64c93用这种方法可以实现效果 但是为什么不走GK的我还在想...

解决方案:

1、在 - (void)propertyChangeNotification:(NSNotification *)notification 里面的 if (vc.gk_interactivePopDisabled)分支:
更改为:
if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
//这里对添加到右滑视图上的所有手势禁用
for (UIGestureRecognizer *popGesture in self.interactivePopGestureRecognizer.view.gestureRecognizers) {
popGesture.enabled = NO;
}
}
self.interactivePopGestureRecognizer.delegate = nil;
self.interactivePopGestureRecognizer.enabled = NO;
[self.interactivePopGestureRecognizer.view removeGestureRecognizer:self.screenPanGesture];
[self.interactivePopGestureRecognizer.view removeGestureRecognizer:self.panGesture];

2、在 - (instancetype)initWithRootVC:(UIViewController *)rootVC transitionScale:(BOOL)transitionScale 里面添加:
self.interactivePopGestureRecognizer.delegate = self.gestureHandler;

遗憾:
禁止全屏滑动,支持边缘滑动 这里面怎么写 没时间研究了
其他地方涵盖以及兼容问题没看

使用TZImagePickerController闪退

252A6A7354C9C223A9F6D7EF66E53E49

[TZImagePickerController-master.zip](https://github.com/QuintGao/GKNavigationBar/files/4971075/TZImagePickerController-master.zip) 不知道是不是冲突了

gk_backImage设置问题

appdelegate设置
[GKConfigure setupCustomConfigure:{
configure.backImage = ImgName(@"btn_back_black");//设置返回按钮图片
}
push的下个页面,如果无返回按钮的话,怎么设置呢?

死循环调用

gk_layoutSubviews 里面再调用
[self gk_layoutSubviews];
不会死循环吗?

侧滑不行

https://github.com/295060456/JobsSearch

因为这个东西我最近还在写,你拉代码的时机我没法掌控,简单做以下说明:
1、如果启用FDFullscreenPopGesture 文件夹下的两个类 UINavigationController+FDFullscreenPopGesture 和 UIScrollView+FDFullscreenPopGesture(在target membership里面打钩包含资源文件进编译树,就是Xcode右侧的侧边栏那边)
没毛病

但是我想你既然写了这个,我就用你的,那么1不打勾不包含的情况下,在@implementation JobsSearchVC 里面的viewDidLoad实现了以下代码:
self.isBackBtnBlackorWhite = YES;
self.gk_navLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backBtnCategory];
self.gk_navRightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.scanBtn];
self.gk_navBackgroundColor = self.bgColour;
// self.gk_captureImage;
self.gk_interactivePopDisabled = NO;
self.gk_fullScreenPopDisabled = NO;

    self.gk_navTitle = self.titleStr;
    [self hideNavLine];
    [self.view bringSubviewToFront:self.gk_navigationBar];
    self.gk_navigationBarHeight = self.gk_navigationBar.mj_h;

执行失败!!!!

我害怕其他变量进行了影响,为了环境的纯洁,我在其他控制器(ViewController_2 ——> ViewController_3)里面作如下操作同样失败;
ViewController_3 代码如下:
self.gk_navTitle = @"Demo";
self.gk_navTitleColor = [UIColor whiteColor];
self.gk_navBackgroundColor = [UIColor redColor];
self.gk_navShadowColor = [UIColor blackColor];
self.gk_backStyle = GKNavigationBarBackStyleWhite;
self.gk_navItemRightSpace = 0;

self.gk_interactivePopDisabled = NO;
self.gk_fullScreenPopDisabled = NO;

借用作者平台说下我的理解

在多人开发的项目中,你不能要求所有人都一定要懂GK,GK的构架和系统的不是一回事;
我一直以为对系统的东西应该抱有敬畏的心态
毕竟人家底层做了优化,自己写的肯定多多少少有差距,而且也是通过调其他的Api,相当于脱了裤子放屁
用GK主要是对系统的把握不清
今天和朋友聊过,好像iOS版本不一样对应的一些生命周期都有变动,这里不过多赘述是哪些Api
我的理解是,系统的不要屏蔽,让新来的朋友可以自由发挥自由选择到底是用GK还是系统的

我这里写了一个轮子,我自己自测了没问题,我也没有单元测试,请广大网友多多留言
这个轮子我没有pod,你们下载来自己研究便好。
主要对系统的Tabbarctr 那一系列 以及nav 那一系列做了一些调整
一方面是拓展功能,一方面是做标记,mark以下,本来我的记忆也不太好
程序员不都是靠轮子吃饭吗?
最好统一 要不然代码乱糟糟的,互相影响,有时候排查问题乱糟糟
我们不需要中间过程,甚至少关心中间过程,集中注意力往该用力的方向使劲

我的demo:
https://github.com/295060456/TabbarItemLottie

也是广泛阅读了网上的各种帖子,我也是站在大神的高度提出我的一些建议和想法
demo我会持续更新。有问题留言。

反正说一下就是:

(void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = RandomColor;

self.isHiddenNavigationBar = NO;
}

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

self.isHiddenNavigationBar = NO;这个属性决定是否关闭系统的导航栏,关了你用GK,不关你用不来GK你继续系统
学习GK用分类无入侵,你不调方法永远不会开辟内存。

以我的demo为例子,必须使用BaseNavigationVC,直接用系统的没效果

下载demo,运行工程,点击第一个Tabbaritem对应的VC,推到另一个VC里面,具体实现在VC_9里面
self.isHiddenNavigationBar = NO;//这一句决定是否有navigationbar

设置配置问题

// 配置导航栏属性
[GKConfigure setupCustomConfigure:^(GKNavigationBarConfigure * _Nonnull configure) {
    configure.gk_translationX = 15;
    configure.gk_translationY = 20;
    configure.gk_scaleX = 0.90;
    configure.gk_scaleY = 0.92;
    // 导航栏背景色
    configure.backgroundColor = [UIColor whiteColor];
    // 导航栏标题颜色
    configure.titleColor = tabbarBlackColor;
    // 导航栏标题字体
    configure.titleFont = MedFont17;
    // 导航栏返回按钮样式
    configure.backStyle = GKNavigationBarBackStyleBlack;
    // 导航栏左右item间距
    configure.gk_navItemLeftSpace = WidthOfScale(8.5);
    configure.gk_navItemRightSpace = 12.0f;
}];

这个设置完并没有生效
图片
你的源码内部直接调用默认配置,这个有问题吧

configure.titleColor有种情况会无效

有设置configure.titleColor = [UIColor redColor];
在VC中

  • (void)viewDidLoad {
    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];
    self.gk_navigationItem.title = @"MainVC";
    // self.gk_navBackgroundColor = [UIColor redColor];
    // self.gk_statusBarStyle = UIStatusBarStyleLightContent;
    // self.gk_navTitleFont = [UIFont systemFontOfSize:18.0f];
    // self.gk_navTitleColor = [UIColor whiteColor];
    }

此时标题颜色不是redColor,还是黑色的

ios13下,设置gk_navItemLeftSpace属性无效

  • 调试发现

  • (void)setGk_navLeftBarButtonItem:(UIBarButtonItem *)gk_navLeftBarButtonItem {
    objc_setAssociatedObject(self, &kAssociatedObjectKey_navLeftBarButtonItem, gk_navLeftBarButtonItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    self.gk_navigationItem.leftBarButtonItem = gk_navLeftBarButtonItem;
    }
    ios13下,程序走到这里就结束了,不进里面调整间距的代码

【重大Bug】不走dealloc

我就说我的代码对于每一个push的VC不走dealloc
我仔仔细细检查每一句代码
现在锁定为这一句:
self.gk_navLeftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backBtnCategory];
加上不走dealloc
去掉这句话,直接手势回退上一个页面就走dealloc
不走dealloc,对象没销毁,下次赋值都会异常,我以前就出现过这个问题,内存也会暴增,也会影响到里面的NSTimer销毁周期
具体为什么会这样,我还在看代码,有问题随时上报;

tabbar问题

带tabBar的Controller,你是用的截图push ,但是我的控制器是播放器,截图就会出现图像静止,声音仍然在放的问题。有没有不用截图的解决办法啊

13.4状态栏

  • (BOOL)prefersStatusBarHidden {
    return self.gk_statusBarHidden;
    }

  • (UIStatusBarStyle)preferredStatusBarStyle {
    return self.gk_statusBarStyle;
    }
    Jietu20200328-131524
    基类添加这两个方法后,启动后,切换其他tabbar会出现

导航栏左右按钮设置的间距,有时候会失效

在第一级界面设置好导航栏按钮间距,进入到子界面时候,再次返回会导致导航栏间距失效。

目前确定会发生的条件:在第一级界面设置按钮间距,进入图片预览(使用的是TZImagePreviewController预览功能),关闭预览功能之后,导航栏按钮间距失效。

swift

能出个swift版本的吗

设置self.gk_navItemLeftSpace作用于所有navigationBar吗?

appdelegage中配置[GKConfigure setupCustomConfigure:gk_navItemLeftSpace为10,之后再控制器中单独设置gk_navItemLeftSpace为20,push下一页面后,gk_navItemLeftSpace还是20,所以,想问一下,gk_navItemLeftSpace属性是作用于所有navigationBar吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.