4

我正在构建一个纸牌游戏(用于 tvos),用户应该能够在其中从板上移除纸牌。在游戏结束时,棋盘上可能只剩下几张牌,它们可能会排列成下图中的按钮。

如何让用户将焦点从按钮 1 移动到按钮 0 或 2?

在SO 的一个类似问题的未接受答案中,有人建议应该使用UIFocusGuide. 我认为该答案不适用于我的问题,因为在这种方法中,必须preferredFocusedView提前告诉 focusGuide(例如,在用户在 siri-remote 中滑动之前)!在我的情况下,首选的下一个焦点取决于滑动方向,例如 focusHeading.

在此处输入图像描述

4

1 回答 1

8

UIFocusGuide是处理此问题的适用方式,并且可以preferredFocusedView在知道用户将移动哪个方向之前(基于哪个按钮具有初始焦点)为每个焦点指南分配一个。

例如,这是您编辑的示例的解决方案,它显示了如何将焦点从焦点按钮 1 移动到按钮 0 或按钮 2。

如果用户向上或向左滑动,焦点将移动到绿色焦点指南之一,这会将首选焦点视图更改为按钮 0。

如果用户碰巧从按钮 1 向下或向右滑动,焦点将移动到蓝色焦点指南之一,按钮 2 将成为焦点。

在此处输入图像描述

随着焦点的变化,您更新焦点指南以将焦点引导回返回方向。例如,一旦按钮 0 获得焦点,您将更新preferredFocusedView绿色焦点指南以首选按钮 1,因此用户可以从焦点按钮 0 向下或向右移动并最终返回按钮 1。

在此处输入图像描述

请记住,如果焦点引擎无法确定下一个视图,您只需要焦点指南。您应该测试不同的场景以确定何时需要指南。

于 2015-12-25T19:18:23.347 回答