在SwiftUI中观察安全区域插图

问题描述

我有一个视图,当导航栏从.large变为.inline时,我想为其设置动画大小。

我知道我可以使用GeometryReader来获取safeAreaInsets,但是例如在滚动列表并且导航栏从.large变为.inline时,它似乎没有更新。显示导航栏如何变化的简单视图是这样的:

struct ContentView: View {

    var body: some View {
        List {
            ForEach(0..<100) {
                Text("Test \($0)")
            }
        }
        .navigationBarTitle(Text("Title")
        .onPreferenceChange(???,perform: { newSafeAreaInsets in
            // Do some logic with the new safe area insets
        })
    }
}

我想知道是否存在一些PreferenceKey或我缺少的东西,可以用来观察导航栏/安全区域插图的大小并以正确的方式更新我的视图?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)