看起来 Apple 的TabView自动支持重新排列,但是在您单击选项卡后它很快就会失去重新排列。
这是我的游乐场代码。
import SwiftUI
import PlaygroundSupport
struct ContentView: View {
@State var arr = ["1","2","3","4","5","6"]
var body: some View {
TabView {
ForEach(self.arr, id: \.self) { name in
Text("Tab \(name) content")
.tabItem {
Image(systemName: "\(name).square.fill")
Text(name)
}
}
}
.font(.headline)
}
}
PlaygroundPage.current.setLiveView(ContentView())
这是我在 gif 中执行的步骤。
- 我从标签“1”开始
- 我转到“更多”选项卡,然后单击“编辑”
- 我将标签“2”与标签“3”交换
- 关闭重新排列屏幕
- 然后,当我单击选项卡“2”(现在位于位置 3)时,应用程序会将选项卡重置为其原始顺序!
我不确定这是否是 SwiftUI 错误,或者是否有我应该一直在听的 onRearrange 钩子或什么。