问题描述
如果您在 Xcode 12.5 上创建一个新项目并将 SwiftUI List
与 foreach
和 .onmove
结合使用,您会注意到 2 件烦人的事情:
1/ 即使未设置 ondelete,并且即使您明确指定 .deletedisabled(true)
,在 EditMode 时,列表行的左侧也会出现一个空格。有没有可能摆脱它?
2/ 移动图标的入口会在每个列表行上产生某种动画故障。分隔线强调了这一点。为什么触发EditMode时分隔符后面有一个空格?似乎在过去,分隔线宽度在此过渡期间保持不变。
如果你问我,之前的行为让我认为移动按钮是嵌入在包裹移动按钮和列表的 ZStack 中的。而现在它看起来像是在 HStack 中。无论如何,这些都不能解释即使它也被推动了也不会出现在行左侧的故障。
我很困惑。
我很惊讶我无法通过 Google 找到有关该问题的任何信息。是我做错了吗?
问题的视频:Glitch,这里有一个简单的代码供您自己尝试。
感谢您抽出宝贵时间。
struct ContentView: View {
@State var listItems = ["Item 1","Item 2","Item 3"]
var body: some View {
NavigationView {
List {
ForEach(listItems,id: \.self) { (item) in
Text(item)
}.onMove { (indexSet,index) in
self.listItems.move(fromOffsets: indexSet,toOffset: index)
}
}
.navigationBarTitle(Text("Nav Title"))
.deletedisabled(true)
.navigationBarItems(trailing: EditButton())
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)