ios - 从 SwiftUI 中的“列表”中删除顶部填充
问题描述
我在 Stack Overflow 上看到过类似的问题,但没有一个能够回答我的问题。
我创建了一个List
,但我想删除List
. 使用时如何删除它GroupedListStyle
?
这是通过以下方式显示的一个List
内的一个VStack
内:NavigationView
fullscreenCover
var body: some View {
NavigationView {
VStack {
taskEventPicker
myList
}
.navigationBarTitle("Add Task", displayMode: .inline)
}
}
哪里taskEventPicker
是分段的Picker
(以绿色框起来):
var taskEventPicker: some View {
Picker("Mode", selection: $selection) { /* ... */ }
.pickerStyle(SegmentedPickerStyle())
.padding()
}
并且myList
是有问题的表格(黄色框):
var myList: some View {
List { /* ... */ }
.listStyle(GroupedListStyle())
}
我试过的
- 删除列表的标题
- 隐藏导航栏标题
- 设置
UITableView.appearance().tableHeaderView
为空帧 - 尝试
UITableView.appearance().contentInset.top = -35
- 设置
listRowInsets
(这会影响所有列表行)
注意:我正在寻找可以适用于GroupedListStyle
. 我知道这个问题不会发生在PlainListStyle
. 默认情况下也会出现此填充问题listStyle
。
谢谢您的帮助!
Xcode 版本:12.5
解决方案
首先,我会说这GroupedListStyle
是按预期工作的。
在 iOS 上,分组列表样式比普通样式显示更大的页眉和页脚,这在视觉上拉开了不同部分的成员的距离。
你说你已经尝试过了,但它对我有用(Xcode 12.5.1):
List { ... }
.onAppear(perform: {
UITableView.appearance().contentInset.top = -35
})
ZStack
您还可以通过在堆栈底部和顶部使用带有列表的 a 来隐藏列表标题Picker
。Picker 确实具有透明度,因此您还必须添加一个不透明视图作为Picker
.
var body: some View {
NavigationView {
ZStack(alignment: .top) {
List { ... }
.listStyle(GroupedListStyle())
.padding(.top, 30)
Color.white
.frame(height: 65)
Picker { ... }
.pickerStyle(SegmentedPickerStyle())
.padding()
}
.navigationBarTitle("Add Task", displayMode: .inline)
}
}
据我所知,这看起来和PlainListStyle
会做的一样,但我假设你有一个特别的理由想要使用GroupedListStyle
.
推荐阅读
- java - JMeter Post 请求 - JSON 解析错误:无效的 UTF-8 起始字节 0xb0
- c - 使用 strcpy、strcat、sprintf 将 3 个字符串组合在一起至少一次
- python - Pandas 日期范围为 yyyy-ww 返回“无法将字符串转换为时间戳”
- javascript - 如何按以下格式将console.log 编号?
- javascript - 如何从头开始生成 PDF,纯 Javascript
- html - 如何在弧的末尾填充文本?
- arrays - 打字稿类型检查不适用于数组过滤器
- python - 如何使用 beautifulSoup 从标签中单独抓取数据?
- rest - 无法使用 REST api 启动单个用户
- docker - 我无法从 AWS Fargate 任务中查询 dynamodb 表