SwiftUI - edgesIgnoringSafeArea 在 iOS 13.4 中的行为不同
Posted
技术标签:
【中文标题】SwiftUI - edgesIgnoringSafeArea 在 iOS 13.4 中的行为不同【英文标题】:SwiftUI - edgesIgnoringSafeArea behaves differently in iOS 13.4 【发布时间】:2020-03-20 12:40:28 【问题描述】:我注意到,在我的应用中,.edgesIgnoringSafeArea 在 ios 13.3 和 iOS 13.4 中呈现的视图不同。
在我的 ContentView 中,我应用了 .edgesIgnoringSafeArea(.top) 修饰符。这在 13.4 之前的所有 iOS 13 版本中都能正确显示。现在在 13.4 的 GM 中,视图的顶部和底部都被切断了。
这是我的内容视图
struct ContentView: View
@EnvironmentObject var session: SessionStore
func getUser()
session.listen()
var body: some View
Group
ZStack
TabView
ExploreView().tabItem
Image(systemName: "house.fill")
Text("Explore")
.tag(1)
FestivalsView().tabItem
Image(systemName: "globe")
Text("Festivals")
.tag(2)
ProfileView().tabItem
Image(systemName: "person.crop.circle.fill")
Text("Profile")
.tag(3)
.accentColor(Color("wdwPurple"))
.edgesIgnoringSafeArea(.top)
.onAppear(perform: getUser)
它的显示方式如下:
有什么想法吗?
【问题讨论】:
你的代码中出现 ZStack 和 Group 的原因是什么? 我会说 13.3 是不正确的 - 它完全没有忽略顶部安全区域。忽略背景很好,在你的情况下 - 文本 - 我根本不会使用这个修饰符。 我也有同样的问题。在设备上。该应用在 iOS 13.3 上看起来不错,现在在 iOS 13.4 更新后它和你的一样坏了。 我遇到了同样的问题。下面的答案都没有任何意义。如果我们为 iOS 13.4 “纠正”这个问题,它将破坏 iOS 13.3 的所有内容。 我推送了我的应用程序的新版本,删除了修饰符,它在 iOS 13.3.1 和 13.4 上正确显示。但是,是的,我也担心如果我将它修复为 13.4,它会破坏低于该值的任何东西。 【参考方案1】:其实在 iOS GM 13.4 上看起来是正确的,因为是忽略顶部安全区域
【讨论】:
【参考方案2】:我删除了修饰符,它似乎可以正确显示。就像其他人所说的那样,模拟器并不能很好地指示事物在实际设备上的实际呈现方式。
【讨论】:
以上是关于SwiftUI - edgesIgnoringSafeArea 在 iOS 13.4 中的行为不同的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - SwiftUI 中是不是有等效的 popViewController?
SwiftUI NavigationLink 如何到达另一个 SwiftUI 页面?