我正在构建一个卡片游戏(用于tvos),用户应该能够从棋盘上移除卡片.在游戏结束时,只有几张牌可以留在棋盘上,并且它们可以例如被安排为下图中的按钮.
如何让用户将焦点从说按钮1移动到按钮0或2?
在SO的类似问题的未被接受的答案中,有人建议应该使用UIFocusGuide
.我不认为答案适用于我的问题,因为在这种方法中,必须preferredFocusedView
提前告知焦点指南(例如在用户在siri-remote中滑动之前)!在我的情况下,首选的下一个焦点取决于滑动方向,例如 focusHeading
.
UIFocusGuide
是处理此问题的适用方法,并且可以preferredFocusedView
在知道用户将移动哪个方向(基于哪个按钮具有初始焦点)之前分配每个焦点指南.
例如,这里是您编辑的示例的解决方案,它显示了如何将焦点从聚焦按钮1移动到按钮0或按钮2.
如果用户向上或向左滑动,焦点将移动到绿色焦点向导之一,这会将首选焦点视图更改为按钮0.
如果用户碰巧从按钮1向下或向右滑动,则焦点将移动到蓝色焦点向导中的一个,并且按钮2将变得聚焦.
当焦点发生变化时,您需要更新焦点指南以引导焦点返回到返回方向.例如,一旦按钮0获得焦点,您将更新preferredFocusedView
绿色焦点指南以更喜欢按钮1,因此用户可以从聚焦按钮0向下或向右移动并最终返回按钮1.
请记住,如果焦点引擎无法确定下一个视图,您只需要一个焦点指南.您应该测试不同的方案以确定何时需要实际指南.