热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何为ios11设置不安全的区域背景颜色

如何解决《如何为ios11设置不安全的区域背景颜色》经验,为你挑选了2个好方法。

使用xcode 9创建一些新的视图控制器,所以现在我有几个安全区域需要处理.

我目前正在尝试做一些全面的事情,这意味着保持不安全的区域(因为我总是显示状态栏)并且背景颜色延伸到全屏(以保持与我以前相似的行为).

另外需要注意的是,这也会影响页面控件,因为当你有一些系统时,系统会把它们放在底部的不安全区域,这个区域也会以黑色显示.

我找不到让背景颜色延伸到不安全区域后面的方法.有什么想法吗?



1> Krunal..:

它看起来像一个hacky技巧,但您可以尝试这样:
您可以在应用程序启动期间或视图控制器的viewDidLoad期间为状态栏设置背景颜色.在这里它以下列方式对我有用.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.green
    }

}

or

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.green
        return true
    }
}



结果如下:

在此输入图像描述


在iOS13上不起作用异常:NSInternalInconsistencyException异常原因:UIApplication上名为-statusBar或-statusBarWindow的应用程序:必须更改此代码,因为不再有状态栏或状态栏窗口。而是在窗口场景上使用statusBarManager对象。

2> pesch..:

您必须应用不同的约束.您的背景颜色应该超出安全区域一直延伸到superview.因此,您的约束需要设置为背景颜色的superview,但需要设置为ui视图的安全区域(按钮,tableViews等)


推荐阅读
author-avatar
mobiledu2502890617
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有