Code Monkey home page Code Monkey logo

Comments (5)

SpaceBlueFish avatar SpaceBlueFish commented on June 10, 2024 3
if (@available(iOS 15.0, *)) {
    [[UINavigationBar appearance] setScrollEdgeAppearance:({
        UINavigationBarAppearance *app = [UINavigationBarAppearance new];
        [app configureWithDefaultBackground];
        // init app property
         app.backgroundColor = UIColorHex(0x163a59);
         app.shadowColor = UIColorHex(0x163a59);
        app;
    })];
}

你好,根据这个配置颜色,如果vc里面有tableview,向上画一下就变成了白色,希望大佬能关注到这个问题

[UINavigationBar appearance].standardAppearance = app;

这个也配置一下就行了

from rtrootnavigationcontroller.

LuKane avatar LuKane commented on June 10, 2024 2
    var setNavigationType: Int {
        set {
            if #available(iOS 15.0, *) {
                if newValue == 0 {
                    let app = UINavigationBarAppearance.init()
                    app.configureWithDefaultBackground() /// 设置默认背景
                    app.backgroundImage = nil            /// 导航条背景 : 一张图片
                    app.backgroundColor = JFTMainColor   /// 导航条背景 : 纯颜色
                    app.backgroundEffect = nil           /// 导航条背景 : 是否要一个 模糊效果
                    app.shadowImage = nil                /// 导航条最下方的一条线 : 一张图片
                    app.shadowColor = UIColor.clear      /// 导航条最下方的一条线 : 纯颜色
                    app.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] /// 导航条title的颜色 || 大小

                    navigationController?.navigationBar.scrollEdgeAppearance = app
                    navigationController?.navigationBar.standardAppearance = app
                }else {
                    
                }
            } else {
                if newValue == 0 { // 主颜色
                    navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white ,NSAttributedString.Key.font : UIFont.systemFont(ofSize: 18)]
                    navigationController?.navigationBar.barTintColor = JFTMainColor
                }else {
                    
                }
            }
        }
        get {
            return 0
        }
    }

针对iOS15.0以后 我的做法 : 在 基类控制器中 用一个 setNavigationType 来表示, 可以设置默认值
特殊的几个页面: 导航条背景是图片 || 导航条背景是其他颜色 || 导航条背景是透明色
这样继承这个 基类控制器就可以 通过设置 setNavigationType 来修改 当前导航条的背景了

from rtrootnavigationcontroller.

TomasWell avatar TomasWell commented on June 10, 2024

感谢

from rtrootnavigationcontroller.

wj19910 avatar wj19910 commented on June 10, 2024

[UINavigationBar appearance] 是全局设置,当存在个别页面需要隐藏导航栏时不适用。
从源码 RTRootNavigationController.m 的 188 行前后上下文分析,加入以下代码可以分开设置从而达到效果。
fix.md

from rtrootnavigationcontroller.

LCBbest avatar LCBbest commented on June 10, 2024
    var setNavigationType: Int {
        set {
            if #available(iOS 15.0, *) {
                if newValue == 0 {
                    let app = UINavigationBarAppearance.init()
                    app.configureWithDefaultBackground() /// 设置默认背景
                    app.backgroundImage = nil            /// 导航条背景 : 一张图片
                    app.backgroundColor = JFTMainColor   /// 导航条背景 : 纯颜色
                    app.backgroundEffect = nil           /// 导航条背景 : 是否要一个 模糊效果
                    app.shadowImage = nil                /// 导航条最下方的一条线 : 一张图片
                    app.shadowColor = UIColor.clear      /// 导航条最下方的一条线 : 纯颜色
                    app.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] /// 导航条title的颜色 || 大小

                    navigationController?.navigationBar.scrollEdgeAppearance = app
                    navigationController?.navigationBar.standardAppearance = app
                }else {
                    
                }
            } else {
                if newValue == 0 { // 主颜色
                    navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor : UIColor.white ,NSAttributedString.Key.font : UIFont.systemFont(ofSize: 18)]
                    navigationController?.navigationBar.barTintColor = JFTMainColor
                }else {
                    
                }
            }
        }
        get {
            return 0
        }
    }

针对iOS15.0以后 我的做法 : 在 基类控制器中 用一个 setNavigationType 来表示, 可以设置默认值 特殊的几个页面: 导航条背景是图片 || 导航条背景是其他颜色 || 导航条背景是透明色 这样继承这个 基类控制器就可以 通过设置 setNavigationType 来修改 当前导航条的背景了

666

from rtrootnavigationcontroller.

Related Issues (20)

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.