Как установить цвет фона безопасной области в Swift 4.2? - PullRequest
1 голос
/ 08 октября 2019

Я очень новичок в Swift

У меня проблема с безопасным видом.

вид безопасной зоны

Для верхней части (некоторые говорят "Строка состояния") я сделал с этим кодом для изменения цвета фона

if #available(iOS 13.0, *) {
            let app = UIApplication.shared
            let statusBarHeight: CGFloat = app.statusBarFrame.size.height

            let statusbarView = UIView()
            statusbarView.backgroundColor = hexStringToUIColor(hex: "#7f0000")
            view.addSubview(statusbarView)

            statusbarView.translatesAutoresizingMaskIntoConstraints = false
            statusbarView.heightAnchor
                .constraint(equalToConstant: statusBarHeight).isActive = true
            statusbarView.widthAnchor
                .constraint(equalTo: view.widthAnchor, multiplier: 1.0).isActive = true
            statusbarView.topAnchor
                .constraint(equalTo: view.topAnchor).isActive = true
            statusbarView.centerXAnchor
                .constraint(equalTo: view.centerXAnchor).isActive = true

        } else {
            let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
            statusBar?.backgroundColor = hexStringToUIColor(hex: "#7f0000")
        }

Понятия не имею, как изменить цвет фона в нижней безопасной области?

мой Main.storyboard мой раскадровка

Ответы [ 2 ]

1 голос
/ 08 октября 2019

просто установите цвет для вашего вида: view.backgroundColor = .blue

и установите ограничения для вашего вида, чтобы он был таким же большим, как безопасная область.

0 голосов
/ 08 октября 2019

вы пробовали этот код?

расширение UIApplication {

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

}

// Установите его из контроллера представления, если вы просматриваете панель состояния на основе контроллераclass ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

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

}

или

// Устанавливается при запуске приложения, если у вас есть строка состояния приложения на основе класса AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

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

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...