我正在运行 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)
}
}
}
}
}
}
}
任何解决此问题的帮助将不胜感激。