iOS-通过preferredStatusBarStyle控制电池栏颜色

这篇具有很好参考价值的文章主要介绍了iOS-通过preferredStatusBarStyle控制电池栏颜色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1

在info.plist文件添加"View controller-based status bar appearance", 值YES
preferredstatusbarstyle,iOS开发,iOS,ios,swift,objective-c

2.code
// MARK: - 导航控制器
class Nav:UINavigationController {
    override init(rootViewController: UIViewController) {
        super.init(rootViewController: rootViewController)
    }
    
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }
    
    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
 
    override var childForStatusBarStyle: UIViewController?{
        //由子页面去控制电池栏颜色
        return self.topViewController
    }
}

// MARK: - 导航控制器的rootViewController
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let btn = UIButton.init(frame: CGRect.init(x: 100, y: 100, width: 100, height: 50))
        btn.setTitle("push vc", for: .normal)
        btn.backgroundColor = .blue
        btn.addTarget(self, action: #selector(onBtn), for: .touchUpInside)
        self.view.addSubview(btn)
    }

    @objc func onBtn(){
        self.navigationController?.pushViewController(VC(), animated: true)
    }
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        //(电池栏黑色)
        return .default
    }

}

// MARK: - 导航控制器的子VC
class VC: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.view.backgroundColor = .blue
        
        //主动触发preferredStatusBarStyle
        self.setNeedsStatusBarAppearanceUpdate()
    }

    override var preferredStatusBarStyle: UIStatusBarStyle {
        //(电池栏白色)
        return .lightContent
    }
}

3.注意
场景:UIViewController 的层级比较复杂,简述如下:
A–> B -> C
其中A是带UINavigationController的一个控制器;B是present出来的一个控制器,坑爹的来了,C又是B push出来的带UINavigationController的一个控制器;而且中间B是overCurrentContext类型的。A、B的状态栏需要是白色的,C是需要黑色的。
vc.modalPresentationCapturesStatusBarAppearance = true,才能被传递下去。文章来源地址https://www.toymoban.com/news/detail-796994.html

到了这里,关于iOS-通过preferredStatusBarStyle控制电池栏颜色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过ESP32的ADC引脚检测电池电压(并通过均值滤波与软件校准)

    最近有个项目需要用到ESP32的ADC做一下电池电量检测,网上关于这方面的资料写得很模糊,于是自己整理了一下。代码注释写的很详细了,基本能解决你搜这个问题所想要解决的问题,以下是代码简介: 注意,若要使用ADC2请留意该警告 本示例芯片型号:ESP32C3(兼容ESP32其它型

    2024年02月12日
    浏览(51)
  • iOS开发之颜色渐变

    CAGradientLayer 在其 背景色上 绘制颜色渐变的图层,填充该图层的形状(包括圆角)。 使用渐变层可以创建包含任意数量颜色的颜色渐变。默认情况下,颜色均匀地分布在整个图层中,但您可以通过渐变指定控制颜色位置的位置。 下例,显示了如何创建包含四种颜色的渐变层,这

    2024年01月17日
    浏览(39)
  • 用于独立系统应用的光伏MPPT铅酸电池充电控制器建模(Simulink实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Simulink实现、详细文章

    2024年02月09日
    浏览(47)
  • unity通过代码动态改变模型颜色

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class ModelShine : MonoBehaviour { }

    2024年02月05日
    浏览(43)
  • YB6812是一款工作于5V的 PFM 升压型 2节串联磷酸锂电池充电控制电路。

    YB6812-5V输入PFM升压型2节串联磷酸铁锂电池充电控制电路集成了均衡充电功能 概述: B6812是一款工作于5V的 PFM 升压型 2节串联磷酸锂电池充电控制电路。 YB6812 采用恒流和恒压模式对电池进行充电管理,内部集成有基准电压源,电感电流检测单元,电池电压检测电路和外部 MOS

    2024年02月08日
    浏览(50)
  • Flutter ios 使用ListView 。滚动时 AppBar 改变颜色问题

    在Ios 中 列表滚动条向下滚动一段距离后 会导致 AppBar 颜色改变  可以给 AppBar 或者 AppBarTheme。 scrolledUnderElevation: 0.0 属性 全局: 局部: 效果:  滚动前 滚动后 x ke z

    2024年04月17日
    浏览(38)
  • 前端实现动态切换主题色-使用 css/less 动态更换主题颜色(换肤功能)或通过单击更改背景颜色

    提示: 以下是本篇文章正文内容,主要描述 使用 css/less 动态更换主题色(换肤功能) 提示: 使用 css/less 动态更换主题色(换肤功能), 方法共通,不限制技术栈: 其实在日常项目开发中经常会遇到有些用户想要一些自定义的的主题色来满足不同的视觉需求,这时候就需

    2024年02月15日
    浏览(67)
  • plt.imshow()中cmap参数控制颜色展示

    plt.imshow()中cmap参数控制颜色展示 以A = [[0,1,2],[3,4,5],[6,7,8]]为例进行展示 plt.imshow(A, cmap=“xxx”)其中xxx在每个图片右侧有显示,展示顺序为首字母“z-a”排序: ‘Accent’, ‘Accent_r’, ‘Blues’, ‘Blues_r’, ‘BrBG’, ‘BrBG_r’, ‘BuGn’, ‘BuGn_r’, ‘BuPu’, ‘BuPu_r’, ‘CMRmap’, ‘

    2024年02月12日
    浏览(45)
  • C语言——修改控制台背景色和字体颜色

    可以用库函数system(“color NUM1NUM2”)实现 需要头文件 stdlib.h NUM1,NUM2均为16进制数 NUM1控制控制台背景色,NUM2控制前景色(即打印的字符的颜色) NUM1,NUM2之间 不能有空格 注:整个程序中, 只有最后一个system(“color ”)生效,因此不能多处局部变色。 NUM1, NUM2可以为以下任何值

    2024年01月17日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包