如何订购三向领带?

How to Order a 3 Way Tie?

我正在开发一个应用程序,该应用程序涉及输入玩家最终拥有的纸牌数量,并在列表中对它们进行排序。但是如果有 2 路或 3 路平手,我希望用户能够有一个菜单,让他们 select 按照谁拥有最高牌到最低牌的顺序,这样我就可以组织列表。我如何让用户订购它们,比如什么样的 Alert/Popup 让我这样做?

编辑:基本上我问的是如何制作一个选择器,让您可以将多个项目排列成特定的顺序,但似乎最好的办法就是让每个项目都有一个带有按钮的堆栈,您可以在其中单击它们并从那里创建您的订单。希望这对处于类似情况的任何人都有帮助!

对于那种他们所做的不仅仅是点击一个选项的用户交互(在你的情况下,你希望他们订购各种卡片),我会创建你自己的自定义视图而不是使用警报或操作sheet 或类似。

您实施的方式取决于您希望它的外观。如果您希望视图显示在当前视图的顶部(有点像警报),它只占用内容所需的 space,那么您可以嵌入 zStack。如果你想让它从底部向上滑动到与全屏几乎相同的大小,那么你可以使用 sheet(有时也称为模态)。

有点难以解释它们的外观 - 如果您 google 图片搜索“SwiftUI sheet”,那么您就会明白我的意思(如果您还不熟悉它们)

ZStack 您将当前视图放在 ZStack 中,然后创建一个新视图,在它之后进入 ZStack,但是您将其包装在 if 语句中,因此它会根据布尔值是否为真有条件地显示。

例如

if gameTied { ChooseSortOrderView() }

然后当您的游戏结束时 - 如果平局,您将布尔值设置为 true 并向上弹出新视图。

你可以传入绑定的卡片,让用户通过拖放、表单、选择器(任何你想要的)对它们进行排序,然后提交。然后将 bool 设置回 false 以使视图消失。

sheet 另一种不使用 zstack 的替代方法是 sheet,这样您就可以看到模式视图。类似的方法,但不是 ZStack,而是使用 .sheet 修饰符。