NavigationLink не работает со ScrollView внутри списка в SwiftUI - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь добиться горизонтальной прокрутки прокрутки внутри списка. Который работает нормально.

Однако, если я добавляю NavigationLink к каждому элементу ScrollView, создается впечатление, что NavigationView не может выполнить свою задачу.

Я добавил свой код. Пожалуйста, посмотрите и дайте мне знать, чего мне не хватает.

struct MovieHomeView: View {
    @ObservedObject var moviesDataSource: MoviesHomeViewModel = MoviesHomeViewModel()

    var body: some View {
        NavigationView {
            VStack {
                HeaderView()
                    .frame(height: 50.0)

                List {
                    MovieCategoryCell(category: "Now Playing", movies: moviesDataSource.nowPlayingMovies)
                    MovieCategoryCell(category: "Popular", movies: moviesDataSource.popularMovies)
                }
                .padding(.horizontal, -20)
            }
            .navigationBarTitle("Movies App")
            .navigationBarHidden(true)
        }
    }
}
struct MovieCategoryCell: View {
    var category: String
    var movies:  [MovieBaseProtocol]

    init(category: String, movies: [MovieBaseProtocol]) {
        self.category = category
        self.movies = movies
    }

    var body: some View {
        VStack(alignment: .leading) {
            Text(category)
                .font(.title)
            ScrollView(.horizontal, showsIndicators: false) {
                HStack {
                    ForEach(self.movies, id: \.id) { movie in
                        NavigationLink(destination: MovieUIView(movie: movie)) {
                            MovieCard(movie: movie)
                        }
                    }
                }
            }
            .frame(height: 280)
        }
        .padding(.horizontal, 20)
    }
}

1 Ответ

0 голосов
/ 03 ноября 2019

Я заменил Views на Text ("1") и обнаружил, что все в порядке. Так что, должно быть, что-то не так с вашими взглядами.

    ForEach(self.movies, id: \.id) { movie in
                    NavigationLink(destination: Text("1")){// MovieUIView(movie: movie)) {
                     Text("1") //   MovieCard(movie: movie)
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...