SwiftUI-导航链接未在正确位置触发

时间:2019-09-17 19:50:17

标签: swiftui navigationlink

我正在运行Xcode 11 GM2,并且NavigationLink的问题未触发预期的地方。我正在使用的应用程序基于发现的here的Apple示例SwiftUI应用程序。苹果样品中也出现了我遇到的问题。

当我将NavigationLink添加到照片时:

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

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

 }

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

enter image description here

以下是主页和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"))
        }
    }
}

PhotoRow

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)

                        }
                    }
                }
            }
        }
    }
}

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

0 个答案:

没有答案