gpt4 book ai didi

swift - 只为 iPhone X 显示状态栏

转载 作者:可可西里 更新时间:2023-11-01 00:34:20 27 4
gpt4 key购买 nike

如果不是 iPhone X,希望隐藏状态栏,如果是 iPhone X,则显示状态栏。

这很可能必须以编程方式完成,因为在 plist 中没有支持此功能的 key (我发现最接近的是 UIStatusBarHidden)

最佳答案

方法一:

您必须将此值添加到 plist:“View controller-based status bar appearance”并将其设置为“NO”。 enter image description here

然后在 AppDelegate 中添加这个

   var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
if #available(iOS 11.0, *) {
if (window?.safeAreaInsets.top)! > CGFloat(0.0) || window?.safeAreaInsets != .zero {
print("iPhone X")
application.isStatusBarHidden = false
//or UIApplication.shared.isStatusBarHidden = true
}
else {
print("Not iPhone X")
application.isStatusBarHidden = true
}
}
return true
}

方法二:查看基于 Controller 的状态栏外观”并将其设置为“YES”。 这是默认设置。

在 iOS11+ 中,setStatusBarHiddenisStatusBarHidden 已弃用, prefersStatusBarHidden从 iOS7+ 开始可用,我们可以通过 ViewController 进行状态栏可见性设置 as-

struct StatusBarInfo {
static var isToHiddenStatus = false
}
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

if #available(iOS 11.0, *) {
if (window?.safeAreaInsets.top)! > CGFloat(0.0) || window?.safeAreaInsets != .zero {
print("iPhone X")
StatusBarInfo.isToHiddenStatus = false
}
else {
StatusBarInfo.isToHiddenStatus = true
print("Not iPhone X")
}
}
return true
}

在 ViewController.Swift 中

override var prefersStatusBarHidden: Bool {
return StatusBarInfo.isToHiddenStatus
}

关于swift - 只为 iPhone X 显示状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com