首页 > 解决方案 > 使用 navigationLink 返回后,SwiftUI 列表列不适合单元格视图

问题描述

我创建了一个列表来显示我的玩家信息。但我的列表列不适合我的单元格视图。在某些列中消失的文本字段。这很奇怪,因为它们中的大多数都有“-1”号。有人知道任何原因可能导致它发生吗?演示视频:https ://youtu.be/vUo9zZZ5olo

struct SelectPlayerCellView: View {
@ObservedObject var player: PlayerGameData
@State var newuniformNumber: Int = 0

    var body: some View {


        HStack{
            Button(action: {
                self.player.isPlayer.toggle()
            }){
                if self.player.isPlayer{
                    Image(systemName: "checkmark.rectangle")
                }
                else{
                    Image(systemName: "rectangle")
                }

            }
            TextField("\(player.uniformNumber)", value: $newuniformNumber, formatter: NumberFormatter())
                .font(.system(size: 40))
                .frame(width:55)
                .padding(5)

            Text(player.name)
        }
        .padding(.horizontal,8)
        .cornerRadius(20)
}
}

我把我的单元格视图放在列表中

struct SelectPlayerView: View {
@EnvironmentObject var teamResult : TeamResult
@ObservedObject var allPlayerList : PlayersGameData = PlayersGameData()
@State var goToNextPage : Bool = false


var selectedPlayerList : PlayersGameData = PlayersGameData()

var body: some View {
    VStack {
        List{
            ForEach(allPlayerList.playersGameDataArray, id: \.userId) { (player) in
                SelectPlayerCellView(player: player)
            }.onMove(perform: move)


        }

        NavigationLink(destination: SelectStartingLineupView(selectedPlayerList: self.selectedPlayerList).environmentObject(teamResult),isActive: $goToNextPage){
            EmptyView()
        }

        VStack (spacing: 10){

            Button(action: {

                self.createPlayersList()
                self.goToNextPage.toggle()
            }){
                Image(systemName: "arrowshape.turn.up.right.circle")
            }
        }
    }.onAppear(perform: getTeamMemberResults)
        .onDisappear(perform: clearTeamMemberResults)
        .navigationBarItems(trailing: EditButton())
}

标签: swiftuiswiftui-list

解决方案


推荐阅读