升级到 Xcode 12 后,SwiftUI 列表视图有不同的颜色深浅
Posted
技术标签:
【中文标题】升级到 Xcode 12 后,SwiftUI 列表视图有不同的颜色深浅【英文标题】:SwiftUI List view have a different shade of color after I upgraded to Xcode 12 【发布时间】:2020-10-15 03:44:22 【问题描述】:升级到 Xcode 12 后,与背景相比,我的列表视图具有不同的白色或黑色阴影(取决于浅色模式或深色模式)。但我在同一个应用程序中的其他列表视图没问题。为什么? 以下是屏幕截图和随附的代码。请指教,谢谢。
List
VStack
Picker("Numbers", selection: self.$selectorIndex)
ForEach(0..<self.numbers.count)
index in Text(self.numbers[index]).tag(index)
.pickerStyle(SegmentedPickerStyle())
if numbers[selectorIndex]=="Alphabetically"
ForEach(appointments_title)
order in
HStack
Text("\(order.title)").font(.headline)
Spacer()
Text("\(order.date, formatter: ContentView.self.taskDateFormat)").font(.headline)
.padding(.bottom).contentShape(Rectangle())
.onTapGesture order.isExpanded.toggle() //.animation(.linear(duration: 0.3))
if order.isExpanded Text("\(order.descript)").frame(maxWidth: .infinity, alignment: .topLeading).padding(.bottom)
else EmptyView()
【问题讨论】:
真正的问题是什么?你担心哪种颜色? 假期列表视图要么完全是纯白色,要么是纯黑色。约会列表视图是灰色的,它不与背景融合。 【参考方案1】:这是默认行为,与列表的格式有关。我会比较两组代码并检查:
它们可能有不同的父视图结构(即在 NavigationViews 中的放置方式不同),
您可能在代码中使用了部分或组,
您还可以在 List 上添加 ListStyle 修饰符之一以覆盖其默认样式:
.listStyle(PlainListStyle())
.listStyle(InsetListStyle())
.listStyle(GroupedListStyle())
.listStyle(SidebarListStyle())
.listStyle(InsetGroupedListStyle())
.listStyle(DefaultListStyle())
【讨论】:
它们的结构相似,除了最后。约会列表视图 .navigationBarTitle("My Appointment") .navigationBarItems(trailing: Button(action: self.showAddDate = true, label: Image(systemName: "plus.circle").resizable().frame(width: 32, height: 32, alignment: .center))) .sheet(isPresented: $showAddDate) AddDate().environment(\.managedObjectContext, self.managedObjectContext)
假期列表视图.navigationBarTitle(stateTitle)
当我注释掉 .navigationBarItems 和 .sheet 时,我没有那种有趣的灰色阴影。
很高兴听到您发现问题出在哪里。如果是,请标记为正确答案
有没有办法让 .navigationBarTitle 和 .sheet 没有那种灰色阴影?
您是否尝试在上面的#3 中添加一个修饰符?我认为其中一个会将格式更改为您想要的方式。您可能只想在两个屏幕上放置相同的修饰符,以防万一。
对不起,是的,刚刚试过,它奏效了。我使用了 .listStyle(PlainListStyle()) 感谢您的帮助!以上是关于升级到 Xcode 12 后,SwiftUI 列表视图有不同的颜色深浅的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 12 + SwiftUI List:点击粘贴时列表行叠加
无法单击列表中的 NavigationLink (SwiftUI)