3

如果你在 Xcode 12.5 上创建一个新项目并使用 SwiftUI 与 a andList组合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())
        }
    }
}
4

0 回答 0