我的应用程序背景较暗,但在iOS 7中,状态栏变得透明.所以我看不到任何东西,只有角落里的绿色电池指示灯.如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?
如何在Swift中以编程方式获取状态栏的高度?
在Objective-C中,它是这样的:
[UIApplication sharedApplication].statusBarFrame.size.height.
Run Code Online (Sandbox Code Playgroud) prefersHomeIndicatorAutoHiddenSwiftUI 中的属性相当于UIKit 吗?
我一直在尝试将 SwiftUI 应用程序中的状态栏设置为浅色文本,因为它具有深色背景。
我在几个网站上找到了这个解决方案,但无法让它工作。
HostingController.swift
import Foundation
import UIKit
import SwiftUI
class HostingController : UIHostingController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Run Code Online (Sandbox Code Playgroud)
这将在类声明行返回错误,Reference to generic type 'UIHostingController' requires arguments in <...>并建议修复Insert '<<#Content: View#>>'. 应用所述修复会导致错误Use of undeclared type '<#Content: View#>'
然后,您是为了改变window.rootViewController中SceneDelegate.swift的文件。
SceneDelegate.swift
...
// Create the SwiftUI view that provides the window contents.
let contentView = Login()
// Use a UIHostingController as window root view controller.
if let windowScene …Run Code Online (Sandbox Code Playgroud) 我已经ZStack设置Color.orange了:
struct HomeView: View {
init() {
UITabBar.appearance().barTintColor = UIColor.orange
}
var body: some View {
ZStack {
Color.orange
TabView {
Settings()
.tabItem {
Image(systemName: "gear")
Text("Settings")
}
MapKitView()
.tabItem {
Image(systemName: "location.circle.fill")
Text("Home")
}
ProfileView()
.tabItem {
Image(systemName: "person")
Text("Profile")
}
}
.font(.headline)
}
}
}
Run Code Online (Sandbox Code Playgroud)
在此ZStack我有一个TabView带有儿童的视图,所有视图都是橙色的ZStacks。但是,这些子视图(包括Settings()下面MapKitView()所示的)没有橙色状态栏。
设置()
struct Settings: View {
var body: some View {
ZStack {
Color.orange
VStack {
NavigationView {
... …Run Code Online (Sandbox Code Playgroud)