SwiftUI:当“navigationBarItems”修改列表时,“listRowInsets”无法按预期工作[重复]
Posted
技术标签:
【中文标题】SwiftUI:当“navigationBarItems”修改列表时,“listRowInsets”无法按预期工作[重复]【英文标题】:SwiftUI: 'listRowInsets' dosen't work as expected when the List is modified by 'navigationBarItems' [duplicate] 【发布时间】:2020-10-27 11:29:18 【问题描述】:我想用这样的搜索按钮制作一个导航视图:
我使用 listRowInsets(EdgeInsets()) 删除图像的前导和尾随填充。
在我添加搜索按钮之前一切都很好:
import SwiftUI
struct demoUI: View
var body: some View
NavigationView
List
Image("food")
.scaledToFill()
.frame(height: 200)
.clipped()
.listRowInsets(EdgeInsets())
ForEach(0 ..< 5) _ in
Text("List Item ")
.navigationTitle(Text("Featured"))
struct demoUI_Previews: PreviewProvider
static var previews: some View
demoUI()
但是当我将图标添加到导航栏时,填充再次显示:
struct demoUI: View
var body: some View
NavigationView
List
Image("food")
.scaledToFill()
.frame(height: 200)
.clipped()
.listRowInsets(EdgeInsets())
ForEach(0 ..< 5) _ in
Text("List Item ")
.navigationTitle(Text("Featured"))
.navigationBarItems(trailing: Image(systemName: "magnifyingglass.circle").imageScale(.large))
我的 Xcode 版本是 12.1 (12A7403)。 这是一个错误,还是预期的结果?
【问题讨论】:
【参考方案1】:明确使用列表样式
List
Image("food")
.scaledToFill()
.frame(height: 200)
.clipped()
.listRowInsets(EdgeInsets())
ForEach(0 ..< 5) _ in
Text("List Item ")
.listStyle(PlainListStyle()) // << here !!
【讨论】:
以上是关于SwiftUI:当“navigationBarItems”修改列表时,“listRowInsets”无法按预期工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI - 当手指移动一点时让 LongPressGesture 保持不变?
当 UserDefaults 值更改 SwiftUI 时,@FetchRequest 谓词不会更新
当 Picker selectedValue 更改时,SwiftUI 2.0 App 崩溃
SwiftUI:当“navigationBarItems”修改列表时,“listRowInsets”无法按预期工作[重复]