UIFocusGuide
是处理这个问题的适用方法,并且可以在事先分配每个焦点指南一个preferredFocusedView
,而不需要知道用户会移动哪个方向(基于哪个按钮具有初始焦点)。
例如,下面是您编辑后的示例的解决方案,说明了如何将焦点从聚焦的按钮1移动到按钮0或按钮2。
如果用户向上或向左滑动,则焦点会移动到绿色的焦点指南之一,这将更改首选焦点视图为按钮0。
如果用户从按钮1向下或向右滑动,焦点将移动到蓝色的焦点指南之一,按钮2将成为焦点。
随着焦点的变化,您需要更新焦点指南以引导焦点返回返回方向。例如,一旦按钮0获得焦点,您将更新绿色焦点指南的preferredFocusedView
以优先选择按钮1,这样用户就可以从聚焦按钮0向下或向右移动并最终回到按钮1。
请记住,只有在焦点引擎无法确定下一个视图时才需要焦点指南。您应该测试不同的情况以确定何时实际需要指南。