SwiftUI List View Невыбираемые строки в списке - PullRequest
0 голосов
/ 07 марта 2020

В моем последнем приложении SwuiftUI, в зависимости от выбранной опции, создается одно из трех различных представлений списка. Каждый из трех возможных списков содержит все отображаемые строки. Однако для всех трех списков ни одна из первых четырех строк не является «выбираемой» для перехода к подробному виду. Все остальные строки можно выбрать и правильно перейти к подробному виду.

Вот соответствующий код:

struct Accounts: View {

    init(){
        UITableView.appearance().backgroundColor = .clear
        UITableViewCell.appearance().backgroundColor = .clear
        UITableView.appearance().tableFooterView = UIView()
    }

    // MARK: - Propertiers
    @Environment(\.presentationMode) var presentation

    @State private var accounts = ["New Account", "Account 1", "
Account 2", "Account 3", "Account 4", "Account 5", "Account 6"] // placeholder data

    var body: some View {

        NavigationView {

            ZStack {

                BackgroundView(majorColorR: 255, majorColorG: 255, majorColorB: 255, minorColorR: 204, minorColorG: 0, minorColorB: 0)

                VStack {

                    AppTitle()

                    List(accounts, id: \.self) { account in
                        NavigationLink(destination: ShowAccount(account: account)) {
                           Text("\(account)")
                           .font(.headline)
                           .foregroundColor(.black)
                       }
                    }

                    Spacer()


                    Button(action: {
                        self.presentation.wrappedValue.dismiss()
                    }) {
                        Text("Return to Main Menu")
                        .font(.headline)
                        .foregroundColor(.white)
                        .padding()
                        .frame(width: 300, height: 50)
                        .overlay(
                            RoundedRectangle(cornerRadius: 15)
                                .stroke(Color.black, lineWidth: 3)
                        )
                    }.padding(.bottom, 50)

                    Spacer()

                }.edgesIgnoringSafeArea(.all)
            }
        }.navigationBarBackButtonHidden(true)
    }

}

1 Ответ

0 голосов
/ 08 марта 2020

попробуйте запустить этот пример

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("A")
            List {
                NavigationLink(destination: Text("alfa")) {
                    Text("row alfa")
                }
                NavigationLink(destination: Text("beta")) {
                    Text("row beta")
                }
                NavigationLink(destination: Text("gama")) {
                    Text("row gama")

                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Каков ожидаемый результат? Если вы ответите, что это экран с одним текстом А в середине, вы правы!

Поверните устройство, и вы увидите ....

enter image description here

Ваш макет "сложен", и, возможно, небольшая перестановка вашего кода может помочь ... Но я предлагаю вам переписать его с нуля!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...