首页 > 解决方案 > 当焦点区域中的多个视图发生变化时,无法将所需视图设置为焦点

问题描述

我很难找到解决方案,所以我想我不妨问问是否有人比我有更好的解决方案。所以要提出这个问题,说我有一个这样的 UI 布局。在此处输入图像描述

一个可聚焦的视图比另一个大得多。当用户向下改变焦点时,它下面包含多个有效的可聚焦视图。像这样的东西。

在此处输入图像描述

我的问题是什么是强制最左边的按钮与其他按钮并置的好方法。

到目前为止,我能想到的唯一解决方案是在自定义按钮子类中覆盖 canBecomeFocused,并返回可设置变量的值。

class CustomButton: UIButton {
    var isFocusable = true 
    canBecomeFocused: Bool {
        return isFocusable
    }
}

然后根据我希望焦点接下来的位置更改 isFocusable 的值。它有效,但我对此并不满意。只是想知道也许其他人能想出更好的解决方案。

标签: focustvosapple-tv

解决方案


您可以在https://developer.apple.com/library/archive/samplecode/UICatalogFortvOS/Introduction/Intro.html查看 Apple 的 UIKitCatalogtvOSCreatingandCustomizingUIKitControls 示例

查看 FocusGuide 行为或 shouldFocusAtItem 和 canFocusAtItem 以获得您的首选焦点行为。


推荐阅读