focus - 当焦点区域中的多个视图发生变化时,无法将所需视图设置为焦点
问题描述
我很难找到解决方案,所以我想我不妨问问是否有人比我有更好的解决方案。所以要提出这个问题,说我有一个这样的 UI 布局。
一个可聚焦的视图比另一个大得多。当用户向下改变焦点时,它下面包含多个有效的可聚焦视图。像这样的东西。
我的问题是什么是强制最左边的按钮与其他按钮并置的好方法。
到目前为止,我能想到的唯一解决方案是在自定义按钮子类中覆盖 canBecomeFocused,并返回可设置变量的值。
class CustomButton: UIButton {
var isFocusable = true
canBecomeFocused: Bool {
return isFocusable
}
}
然后根据我希望焦点接下来的位置更改 isFocusable 的值。它有效,但我对此并不满意。只是想知道也许其他人能想出更好的解决方案。
解决方案
您可以在https://developer.apple.com/library/archive/samplecode/UICatalogFortvOS/Introduction/Intro.html查看 Apple 的 UIKitCatalogtvOSCreatingandCustomizingUIKitControls 示例
查看 FocusGuide 行为或 shouldFocusAtItem 和 canFocusAtItem 以获得您的首选焦点行为。
推荐阅读
- awk - 如何替换文件中的 SQL 特定行?
- typescript - 如何在运行时在 Vue 上设置全局数据?
- php - Woocommerce - 是否可以根据该类别下产品的库存状态隐藏产品类别?
- r - Highcharter-R:x 轴值未显示,y 轴上的文本错误
- docusignapi - 如何在docusign android sdk的构建方法中提供文件uri
- javascript - 使用 React Context 改变 progressBar 的状态
- angular - 如何使 webos lg tv webbrowser 支持 angular webapp?
- spring - 带有占位符的 Springboot 应用程序属性,在应用程序内部动态更新
- google-cloud-bigtable - Bigtable from_service_account_json() 不工作
- laravel - 如何使用带有 url 参数和错误消息的 auth 中间件的 redirectTo 方法?