Giter Club home page Giter Club logo

gknavigationbarviewcontroller's Introduction

Hi there 👋

This is QuintGao,a rookie iOS developer。Now that you're here, why don't you pay attention!

✍ Blog & Writing

简书:QuintGao
掘金:QuintGao

📈 GitHub Stats

QuintGao's GitHub Stats

ꗀ Repositories

gknavigationbarviewcontroller's People

Contributors

quintgao avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gknavigationbarviewcontroller's Issues

在swfit中,没办法再使用原生nav

swfit会全局调用GKNavBar,在使用其他一些框架,使用到原生UINav的时候原生控件就没法使用了。我估计纯OC项目可能不会出现这个问题。

iOS 13上存在很多问题。。

我有个页面就是继承了GKNavigationBarViewController,但是系统的导航栏没有隐藏 ,我用UINavigationControllerDelegate的:

  • (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
    隐藏成功以后 push到其他页面 用手势返回到一半取消手势返回,页面的导航栏就不见了

iOS9.0 setGk_navBarBackgroundAlpha 无效

- (void)setGk_navBarBackgroundAlpha:(CGFloat)gk_navBarBackgroundAlpha {
    _gk_navBarBackgroundAlpha = gk_navBarBackgroundAlpha;
    
    [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if (GKDeviceVersion >= 10.0 && [obj isKindOfClass:NSClassFromString(@"_UIBarBackground")]) {
            dispatch_async(dispatch_get_main_queue(), ^{
                obj.alpha = gk_navBarBackgroundAlpha;
            });
        } else if ([obj isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
            dispatch_async(dispatch_get_main_queue(), ^{
                obj.alpha = gk_navBarBackgroundAlpha;
            });
        }
    }];
    self.clipsToBounds = gk_navBarBackgroundAlpha == 0.0;
}

10.0之前都要通过_UINavigationBarBackground来修改。

和TZImagePickerController冲突,会隐藏TZ的导航栏

作者你好,GKNavigationBarViewController库在UINavigationController+GKCategory文件中hook了所有UINavigationController的viewDidLoad,对除UIImagePickerController外的所有导航栏控制器隐藏了导航条...

这个会导致同时集成GKNavigationBarViewController和TZImagePickerController的项目里,TZImagePickerController没有导航条...

希望作者可以提供个属性允许设置过滤掉某些导航栏控制器。

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

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

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

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

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

右滑代理

viewControllerPopScrollEnded使用这个代理,导致wkweb无法释放,其他页面右滑就崩溃了

navigationBar

如果控制器不继承自GKNavigationBarViewController,push 之后就没有NavigationBar,请问这个问题有办法解决吗?

On iOS 13, changing layout margins of a private view is not allowed.

On iOS 13, changing layout margins of a private view is not allowed. So, expanding the frame to eliminate the layout margins can be an alternative solution.

GKNavigationBar.m中的这段代码要改下了。

    // 设置导航item偏移量
    if (GKDeviceVersion >= 11.0 && !GKConfigure.gk_disableFixSpace) {
        self.layoutMargins = UIEdgeInsetsZero;
        
        for (UIView *subview in self.subviews) {
            if ([NSStringFromClass(subview.class) containsString:@"ContentView"]) {
                // 修复iOS11 之后的偏移
                subview.layoutMargins = UIEdgeInsetsMake(0, self.gk_navItemLeftSpace, 0, self.gk_navItemRightSpace);
                break;
            }
        }
    }

半屏全屏 侧滑返回失效

使用IQKeyboardManager管理键盘输入 会影响侧滑返回设置
当输入框处于编辑状态,设置的禁止侧滑半屏 全屏侧滑返回失效
退出键盘也一样失效

根部控制器在开启gk_openScrollLeftPush = YES 后,根控制器下左滑1次,再push其他界面卡死

2018.9.11 -- 2.1.0 解决根控制器开启左滑push无效的问题

这个根控制器开启左滑push无效的问题,不应该公开个属性给别人设置吗。升级后就直接出bug了。

//此处代码给我改成这样解决了
if (self.navigationController.gk_openScrollLeftPush) {
     // 开启了左滑push功能
     // 忽略根控制器
    if (self.navigationController.viewControllers.count <= 1) {
        return NO;
    }
} 

请教一个手势冲突的问题

image
请问一下签字区域通过touchesBegan、touchesMoved、touchesEnded封装的签名版怎么屏蔽在这个区域签字时左滑返回的手势和tableView的上下滚动

状态栏重影

进行下拉系统通知列表界面时导航栏上状态栏会出现白色字体重影

抖音类型中滑动push到vc,tabbar会异常。

抖音类型中滑动push到vc,tabbar会异常,因为我

使用了tabbarVC,在滑动进入右边的vc的时候拖动时,tabbar会浮起来,完全进入到了右侧的vc,tabbar闪烁一下再消失。

我遇到一个bug,请帮我解决一下

我主页面是一个uiscrollview,contentsize=screenwidth*2;scrollview默认contentoffset.x = screenwidth; 当我把scrollview滑动到contentoffset.x =0时,再滑动回来,这时候再push控制器时,app就假死了,怎么办?十万火急,拜托了

貌似不能与系统导航栏兼容

遇到的问题:与系统导航栏混用之后,发现从GKNavi到系统Navi自动隐藏导航栏,即使设置self.navigationController.navigationBar.hidden = NO;也没有用

xcode 8.3.3 使用pod install安装GKNavigationBarViewController出错

我在Podfile中引入
pod 'GKNavigationBarViewController'
使用pod install 然后在xcode中编译会提示Code Sign Error
....code object is not signed at all

根据网友的提示,是你的资源目录使用Resources名字导致。
所以我修改了Resources文件夹的名字,重新将文件夹倒入工程,这个时候是可以成功的。
建议优化一下,使得更好的支持cocospod

转场动画失效

你好,push到另一个控制器(含多个子控制器)时,转场动画没有了,请问是什么原因?

小小的一个建议

可以尝试下把 GKNavigationBarViewController 这个基类干掉,使用分类的形式代替基类并设置可配置的黑名单来处理,基类有时耦合度太高了,

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.