SwiftUI 列表正在使用 .navigationBarItems 进行剪辑 [重复]
Posted
技术标签:
【中文标题】SwiftUI 列表正在使用 .navigationBarItems 进行剪辑 [重复]【英文标题】:SwiftUI List is clipping using .navigationBarItems [duplicate] 【发布时间】:2020-11-12 16:57:59 【问题描述】:当我添加 .navigationBarItems 修饰符列表时,列表会被剪裁并且不会像这样占用所有空间
应该像这张照片(没有 .navigationBarItems):
代码
struct PatientsListView: View
@ObservedObject var listData = PatientsListViewModel()
var body: some View
NavigationView
Group
if listData.patientsList.count > 0
List
ForEach(Array(listData.patientsList)) patient in
NavigationLink(destination: PatientsDetailView(patient: patient),
label:
PatientsListRow(patient: patient)
)
else if listData.patientsList.count == 0
Text("Самое время добавить пациентов!").foregroundColor(.gray)
else if listData.isLoading
ProgressView()
.navigationTitle("Пациенты")
.navigationBarTitleDisplayMode(.large)
.navigationBarItems(trailing: NavigationLink(destination: PatientCreateView(), label:
Image(systemName: "plus").foregroundColor(.white)
))
.onAppear(perform:
listData.fetchPatients()
)
【问题讨论】:
【参考方案1】:这是默认行为。如果你喜欢,你可以明确设置 List 样式,比如
List
ForEach(Array(listData.patientsList)) patient in
NavigationLink(destination: PatientsDetailView(patient: patient),
label:
PatientsListRow(patient: patient)
)
.listStyle(PlainListStyle()) // << here !!
【讨论】:
以上是关于SwiftUI 列表正在使用 .navigationBarItems 进行剪辑 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 列表正在使用 .navigationBarItems 进行剪辑 [重复]