1

我正在运行 Xcode 11 GM2,但出现 NavigationLink 未在预期位置触发的问题。我正在开发的应用程序基于此处找到的 Apple 示例 SwiftUI 应用程序。我遇到的问题也发生在 Apple 的示例中。

当我将 NavigationLink 添加到照片时:

 NavigationLink(destination: PhotoDetail(photo: photo)) {

    PhotoItem(photo: photo)
       .frame(width: 300)
       .padding(.trailing, 30)

 }

当您单击 PhotoItem 中的图像和其他内容时,无法访问该链接。但是,如果您向上移动一点并在图像上方的类别名称下方触摸/单击,它不仅会触发到目标的链接,还会为滚动视图中的所有五个项目触发它。

在此处输入图像描述

以下是主页和 PhotoRow 的完整代码:

struct HomeView: View {

    // Create a categories dictionary
    var categories: [String:[Photo]] {
        .init(
            grouping: photoData,
            by: { $0.category.rawValue }
        )
    }

    var body: some View {
        NavigationView {
            List(categories.keys.sorted(), id: \String.self) { key in
                    PhotoRow(categoryName: "\(key)".uppercased(),
                             photos: self.categories[key]!)
                        .frame(height: 320)
                        .padding(.top)
            }
        .navigationBarTitle(Text("Portfolio"))
        }
    }
}

照片行

struct PhotoRow: View {
    var categoryName: String
    var photos: [Photo]

    var body: some View {
        VStack(alignment: .leading){
            Text(self.categoryName)
                .font(.title)


            ScrollView(.horizontal, showsIndicators: false) {
                HStack(alignment: .top) {
                    ForEach (self.photos) { photo in

                        // add navigation to detail view:
                        NavigationLink(destination: PhotoDetail(photo: photo)) {

                            PhotoItem(photo: photo)
                                .frame(width: 300)
                                .padding(.trailing, 30)

                        }
                    }
                }
            }
        }
    }
}

任何解决此问题的帮助将不胜感激。

4

0 回答 0