SwiftUI:listRowInsets 未按预期工作
Posted
技术标签:
【中文标题】SwiftUI:listRowInsets 未按预期工作【英文标题】:SwiftUI: listRowInsets not working as expected 【发布时间】:2019-11-19 08:00:31 【问题描述】:listRowInsets(_:)
在使用List()
和List(Data,id)
时无法正常工作。在下面的 Example 1 中,零插入完美地工作,而在 Example 2 中它什么也不做。
示例 1:
struct ContentView: View
var body: some View
List
Color.red
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.blue
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.yellow
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
结果:
示例 2
struct ContentView: View
var colors: [Color] = [.red, .blue, .yellow]
var body: some View
List(colors, id: \.self) color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
结果:
【问题讨论】:
【参考方案1】:我认为原因在于使用的构造函数。 .listRowInsets
by 文档效果视图被放置在列表中(直接)。
以下作品
var colors: [Color] = [.red, .blue, .yellow]
var body: some View
List
ForEach(colors, id: \.self) color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
【讨论】:
很棒的发现! Fwiw,虽然这个解决方案有效,但我想知道另一种方式失败是否只是一个错误或预期的行为。 developer.apple.com/documentation/swiftui/color/… 讨论中的示例提到像 @Mohammed 所做的那样设置列表插图。..【参考方案2】:除了Asperi的回答,如果有section,需要对section应用listRowInsets视图修饰符,否则设置也会被忽略。
【讨论】:
以上是关于SwiftUI:listRowInsets 未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:当“navigationBarItems”修改列表时,“listRowInsets”无法按预期工作[重复]
Swiftui listRowInsets 在添加到空数组时会发生意外更改
新的 SwiftUI/iOS 15.0 .animation 未按预期工作