相关疑难解决方法(0)

如何在从 AnyView 制作的自定义 NavigationItem 之间向 Transitons 添加动画?

有没有办法为自定义之间NavigationItem的过渡添加动画,AnyView本文所述

我喜欢这个NavigationStack系统的一切,除了不能添加任何动画过渡。

我理解这个问题有型擦除做some Views的AnyView,如在这个答案,这Group似乎是动画自定义视图导航一个更好的选择。

与其使用 AnyView 和类型擦除,我更喜欢将条件逻辑封装在 Group 视图中。然后您返回的类型是 Group,它将正确地设置动画。

我已经没有想法了,我需要一些帮助。

我将添加我的上下文代码。

场景委托:

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
...
    let contentView = ContentView().environmentObject(UserData())
...
}
Run Code Online (Sandbox Code Playgroud)

内容视图:

struct ContentView: View {
    @EnvironmentObject var userData: UserData   
    var body: some View {
        NavigationHost()
            .environmentObject(NavigationStack(
                NavigationItem(view: AnyView(
                    (userData.isSignedIn ? AnyView(HomeView()) : AnyView(RegisterView1(profile: Profile.default)) )
                    .transition(.move(edge: .trailing))
                    .animation(Animation.linear(duration: 1))))))
                    //this animation works for some reason, but only this one. …
Run Code Online (Sandbox Code Playgroud)

swiftui ios-navigationview

2
推荐指数
1
解决办法
2172
查看次数

标签 统计

ios-navigationview ×1

swiftui ×1