gpt4 book ai didi

ios - 如何为 iPhone 8 屏幕与 iPhone X 及更高版本的底部 anchor 设置不同的常量?

转载 作者:行者123 更新时间:2023-11-28 23:21:45 26 4
gpt4 key购买 nike

我做了一些研究,但我一直在寻找这个问题的答案:对于 iPhone X 之前的屏幕类型,我想从屏幕底部到菜单底部保持一个 -6 的常数.在 X 或更高版本上运行时,常量为 0,因为不需要。我试过验证 iOS 版本,但显然它总是默认为模型 8 上的 safeAreaLayoutGuide。我该怎么办?我只想到更多“手动”解决方案,例如屏幕高度,但我知道这不是可行的方法。请帮助。下面的代码。

view.addSubview(programMainMenu)
if #available(iOS 11.0, *) { // gets called on 8.
let safeGuide = self.view.safeAreaLayoutGuide
let safeMenuConstraints = [
programMainMenu.bottomAnchor.constraint(equalTo: safeGuide.bottomAnchor, constant: 0),
programMainMenu.leadingAnchor.constraint(equalTo: safeGuide.leadingAnchor, constant: 8),
programMainMenu.trailingAnchor.constraint(equalTo: safeGuide.trailingAnchor, constant: -8),
programMainMenu.heightAnchor.constraint(equalToConstant: 90)
]
NSLayoutConstraint.activate(safeMenuConstraints)
} else {
let mainMenuConstraints = [
programMainMenu.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -6), // i need to have this on 8 but not above
programMainMenu.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 8),
programMainMenu.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -8),
programMainMenu.heightAnchor.constraint(equalToConstant: 90)
]
NSLayoutConstraint.activate(mainMenuConstraints)
}*

最佳答案

你需要

 var cons = 0 // set values for it inside each switch case 

if UIDevice().userInterfaceIdiom == .phone {
switch UIScreen.main.nativeBounds.height {
case 1136:
print("iPhone 5 or 5S or 5C")
cons = ///

case 1334:
print("iPhone 6/6S/7/8")

case 1920, 2208:
print("iPhone 6+/6S+/7+/8+")

case 2436:
print("iPhone X/XS/11 Pro")

case 2688:
print("iPhone XS Max/11 Pro Max")

case 1792:
print("iPhone XR/ 11 ")

default:
print("Unknown")
}
}

然后在这里使用var

programMainMenu.bottomAnchor.constraint(equalTo: safeGuide.bottomAnchor,
constant:cons),

关于ios - 如何为 iPhone 8 屏幕与 iPhone X 及更高版本的底部 anchor 设置不同的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554117/

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