ios - navigationBarTitle 与 SwiftUI 中的列表标题重叠
问题描述
我刚刚开始使用 SwiftUI 并尝试实现一个具有水平和垂直列表的视图。虽然设计看起来不错,但列表标题的顶部项目与导航栏标题有一些重叠。请检查图像:
列表中有 2 个水平滚动视图。此外,第二个 scrollView 的标题也不可见。以下是我的导航视图代码:
struct HomeView: View {
var categories: [String: [Drink]] {
.init(
grouping: drinkData, by: {$0.category.rawValue})
}
var body: some View {
NavigationView {
List {
ForEach(categories.keys.sorted(), id: \String.self) { key in
DrinkRow(categoryName: "\(key) Drinks", drinks: self.categories[key]!)
.frame(height: 320)
.padding(.top)
.padding(.bottom)
}
}
.navigationBarTitle(Text("COFFEE DB"))
}
}
}
列表的项目在以下文件中作为水平滚动视图:
struct DrinkRow: View {
var categoryName: String
var drinks: [Drink]
var body: some View {
VStack(alignment: .leading) {
Text(self.categoryName)
.font(.title)
ScrollView(.horizontal, showsIndicators: false) {
HStack {
ForEach(self.drinks, id: \.name) { drink in
NavigationLink(destination: DrinkDetail(drink: drink)) {
DrinkItem(drink: drink).frame(width: 300).padding(.trailing, 30)
}
}
}
}
}.padding(.top)
}
}
解决方案
似乎这是由于您为列表中的每个元素提供的固定框架:
.frame(height: 320)
尝试移除固定高度,或确保DrinkRow
适合此尺寸。
推荐阅读
- java - 如何仅显示文件更改事件 Java 的一条消息
- python - “是”没有定义?有点迷茫
- google-apps-script - 脚本编辑器接受的内容和 Google 表格接受的内容可能不同?
- r - 在地图中使用starts_with而不是显式命名
- cxf - 在 java-11 中工作的 CXF-SOAP gradle-plugin?
- intellij-idea - 如果intellij中的长参数如何更改换行
- c# - 为每个可能的排列填充 3x3 位立方体
- c - 如何区分 RTOS 和 Linux?
- r - 如何计算地铁站的乘客数量?
- reactjs - 无法显示 Jumbotron 和 Mobile Stepper UI 组件的图像(材料 UI)