• IQKeyboardManager 状态栏(status bar)问题


    因为懒,所以具体什么样子,参考下面的链接

    具体的问题情况参考:StatusBar background problem #1158

     

    我解决的思路很简单,就是在监听键盘消失的时候,去设置 statys bar 的背景颜色。

    因为状态栏并不是消失了,说明不是frame 出了问题,那么我就修改 它的背景颜色。

     具体代码:

    去替换 IQKeyboardManager.m 中的下面的方法

    - (void)keyboardDidHide:(NSNotification*)aNotification
    {
    CFTimeInterval startTime = CACurrentMediaTime();
    [self showLog:[NSString stringWithFormat:@"****** %@ started ******",NSStringFromSelector(_cmd)]];
    
    _topViewBeginRect = CGRectZero;
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        
        statusBar.backgroundColor = [UIColor whiteColor];
    }
    #ifdef __IPHONE_11_0
    if (@available(iOS 11.0, *)) {
    self.initialAdditionalSafeAreaInsets = UIEdgeInsetsZero;
    }
    #endif
    
    _kbSize = CGSizeZero;
    
    CFTimeInterval elapsedTime = CACurrentMediaTime() - startTime;
    [self showLog:[NSString stringWithFormat:@"****** %@ ended: %g seconds ******",NSStringFromSelector(_cmd),elapsedTime]];
    }

    但是由于弹起键盘的控制器导航栏的透明度原因会有一些小问题,所以我干脆就直接不透明。顺便把颜色也写上。这样就看不出来了。先这样改吧。

    self.navigationController.navigationBar.translucent = NO; 
    [self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];
  • 相关阅读:
    silverlight 打印
    Silverlight 设置颜色
    JAVA开发Web Service几种框架介绍
    初始化 Gradle 工程目录(转自: 隔叶黄莺 Unmi Blog)
    正则表达式集合
    软件工程(一)
    JAVA多线程与多进程
    配置hibernate根据实体类自动建表功能(转载)
    配置DruidDataSource参考(com.alibaba.druid.pool.DruidDataSource)
    JVM内存堆布局图解分析
  • 原文地址:https://www.cnblogs.com/DafaRan/p/8074083.html
Copyright © 2020-2023  润新知