我的问题是SafeArea在iOS 16中被忽略了,我在标准ViewController中托管了一个简单的SwiftUI视图。请参阅下面的代码。结果就像在图片里一样。左边是iOS 15,一切都和预期的一样。右侧是iOS16。

ViewController:
override func viewDidLoad() {
super.viewDidLoad()
let myview = UIHostingController(rootView: MyView())
view.addSubview(myview.view)
myview.view.frame = view.frame
}SwiftUI视图:
struct MyView: View {
var body: some View {
VStack {
HStack{
Spacer()
Text("lol")
.font(.title)
.padding()
.background(Color.red)
}
Spacer()
}
}
}发布于 2022-09-16 02:58:02
您必须在largeTitle中使用iOS16选项
我觉得这个很好。
let myview = UIHostingController(rootView: MyView())
myview.navigationItem.largeTitleDisplayMode = .never
let navController = UINavigationController(rootViewController: myview)
navController.navigationBar.prefersLargeTitles = true
view.addSubview(navController.view)
myview.view.frame = view.framehttps://stackoverflow.com/questions/73703100
复制相似问题