Chr*_*nce 4 swift swiftui ios14
我想我知道这个问题的答案,但我会把它作为一个问题提出并给出我的答案,因为这对我来说有点令人困惑,并且我花了一些时间才弄清楚。
我刚刚开始Menu在 SwiftUI 中使用 's 。在我的第一个应用程序中,我在应用程序的导航栏中使用了它们。
Menu {
ForEach(pickers, id: \.mediaPickerUIDisplayName) { picker in
Button(action: {
viewModel.sheetToShow = .picker(picker)
}) {
Text(picker.mediaPickerUIDisplayName)
}.enabled(picker.mediaPickerEnabled)
}
} label: {
SFSymbolIcon(symbol: .plusCircle)
}
Run Code Online (Sandbox Code Playgroud)
看起来不错。
然后,我更改了使用相同代码的上下文。我没有在导航栏中使用它,而是在屏幕中央使用它。相反,我看到:
我感到不安的是,列表中项目从上到下的顺序发生了变化。
[更新]\n在撰写本文时,在 iOS16(测试版)中,您现在可以使用新的修饰符.menuOrder(.fixed)。这将使您的项目顺序保持固定,顾名思义\xe2\x80\xa6
是的。这是我个人认为非常糟糕的 \xe2\x80\x98native\xe2\x80\x99 行为。想象一下,您的删除按钮位于底部,突然没有任何警告,顺序发生变化只是因为元素已移动到中线上方/下方。\n肌肉记忆将会启动,用户会感到非常困惑。\n这是一个灾难性的遗漏结果。
\n| 归档时间: |
|
| 查看次数: |
1304 次 |
| 最近记录: |