列表视图在SwiftUI中抖动

列表视图在SwiftUI中抖动,swiftui,master-detail,Swiftui,Master Detail,我有一个主-细节视图,它使用完全普通的SwiftUI导航一系列连续列表,我注意到两件事 通过导航链接访问列表行时,列表行宽度会抖动 .navigationBarTitle在新视图完全显示在屏幕上之前不可见 似乎这两件事都不应该发生?不知道是否有人有任何想法(视频和代码附件) 问题视频: UserList.swift: import SwiftUI struct UserList: View { var body: some View { NavigationView {

我有一个主-细节视图,它使用完全普通的SwiftUI导航一系列连续列表,我注意到两件事

  • 通过导航链接访问列表行时,列表行宽度会抖动
  • .navigationBarTitle在新视图完全显示在屏幕上之前不可见
  • 似乎这两件事都不应该发生?不知道是否有人有任何想法(视频和代码附件)

    问题视频:

    UserList.swift:

    import SwiftUI
    
    struct UserList: View {
        var body: some View {
            NavigationView {
                List(userData) { this in
                    NavigationLink(destination: CityList(user: this, cities: this.cities)) {
                        UserRow(user: this)
                    }
    
                }
                .navigationBarTitle(Text("Users"))
            }
        }
    }
    
    import SwiftUI
    
    struct UserRow: View {
        var user: UserModel
        var body: some View {
            VStack(alignment: .leading) {
                Text(user.firstName + " " + user.lastName)
                    .font(.headline)
            }
        }
    }
    
    import SwiftUI
    
    struct CityList: View {
        var user: UserModel
        var cities: [CityModel]
    
        var body: some View {
            List (cities) { this in
                NavigationLink(destination: TownList(city: this, towns: this.towns)) {
                   CityRow(city: this)
    
                }.navigationBarTitle(Text(self.user.firstName + self.user.lastName))
            }
        }
    }
    
    import SwiftUI
    
    struct CityRow: View {
        var city: CityModel
    
        var body: some View {
            VStack(alignment: .leading) {
                Text(city.name)
                    .font(.headline)
            }
        }
    }
    
    UserRow.swift:

    import SwiftUI
    
    struct UserList: View {
        var body: some View {
            NavigationView {
                List(userData) { this in
                    NavigationLink(destination: CityList(user: this, cities: this.cities)) {
                        UserRow(user: this)
                    }
    
                }
                .navigationBarTitle(Text("Users"))
            }
        }
    }
    
    import SwiftUI
    
    struct UserRow: View {
        var user: UserModel
        var body: some View {
            VStack(alignment: .leading) {
                Text(user.firstName + " " + user.lastName)
                    .font(.headline)
            }
        }
    }
    
    import SwiftUI
    
    struct CityList: View {
        var user: UserModel
        var cities: [CityModel]
    
        var body: some View {
            List (cities) { this in
                NavigationLink(destination: TownList(city: this, towns: this.towns)) {
                   CityRow(city: this)
    
                }.navigationBarTitle(Text(self.user.firstName + self.user.lastName))
            }
        }
    }
    
    import SwiftUI
    
    struct CityRow: View {
        var city: CityModel
    
        var body: some View {
            VStack(alignment: .leading) {
                Text(city.name)
                    .font(.headline)
            }
        }
    }
    
    CityList.swift:

    import SwiftUI
    
    struct UserList: View {
        var body: some View {
            NavigationView {
                List(userData) { this in
                    NavigationLink(destination: CityList(user: this, cities: this.cities)) {
                        UserRow(user: this)
                    }
    
                }
                .navigationBarTitle(Text("Users"))
            }
        }
    }
    
    import SwiftUI
    
    struct UserRow: View {
        var user: UserModel
        var body: some View {
            VStack(alignment: .leading) {
                Text(user.firstName + " " + user.lastName)
                    .font(.headline)
            }
        }
    }
    
    import SwiftUI
    
    struct CityList: View {
        var user: UserModel
        var cities: [CityModel]
    
        var body: some View {
            List (cities) { this in
                NavigationLink(destination: TownList(city: this, towns: this.towns)) {
                   CityRow(city: this)
    
                }.navigationBarTitle(Text(self.user.firstName + self.user.lastName))
            }
        }
    }
    
    import SwiftUI
    
    struct CityRow: View {
        var city: CityModel
    
        var body: some View {
            VStack(alignment: .leading) {
                Text(city.name)
                    .font(.headline)
            }
        }
    }
    
    CityRow.swift:

    import SwiftUI
    
    struct UserList: View {
        var body: some View {
            NavigationView {
                List(userData) { this in
                    NavigationLink(destination: CityList(user: this, cities: this.cities)) {
                        UserRow(user: this)
                    }
    
                }
                .navigationBarTitle(Text("Users"))
            }
        }
    }
    
    import SwiftUI
    
    struct UserRow: View {
        var user: UserModel
        var body: some View {
            VStack(alignment: .leading) {
                Text(user.firstName + " " + user.lastName)
                    .font(.headline)
            }
        }
    }
    
    import SwiftUI
    
    struct CityList: View {
        var user: UserModel
        var cities: [CityModel]
    
        var body: some View {
            List (cities) { this in
                NavigationLink(destination: TownList(city: this, towns: this.towns)) {
                   CityRow(city: this)
    
                }.navigationBarTitle(Text(self.user.firstName + self.user.lastName))
            }
        }
    }
    
    import SwiftUI
    
    struct CityRow: View {
        var city: CityModel
    
        var body: some View {
            VStack(alignment: .leading) {
                Text(city.name)
                    .font(.headline)
            }
        }
    }
    

    第三次才是魅力所在,他们就是这么说的

    抖动只是在模拟器上,我也有同样的问题。然后我在手机上安装了这个应用程序,效果非常好。在模拟器上忽略它


    而标题的问题是——据我所知——也只是模拟器上的一个bug,我在手机上没有这些问题

    他们是这么说的,第三次才是魅力所在

    抖动只是在模拟器上,我也有同样的问题。然后我在手机上安装了这个应用程序,效果非常好。在模拟器上忽略它


    而标题的问题是——据我所知——也只是模拟器上的一个bug,我在手机上没有这些问题

    你找到解决办法了吗?我在13.3的手机和模拟器上都遇到了这个问题。你找到解决办法了吗?我在13.3的手机和模拟器上都遇到了这个问题。