TV OS UIFocusEnvironment 不聚焦按钮

Posted

技术标签:

【中文标题】TV OS UIFocusEnvironment 不聚焦按钮【英文标题】:TV OS UIFocusEnvironment Not focusing Button 【发布时间】:2019-02-14 09:06:22 【问题描述】:

大家好,我是 TV OS 应用开发的初学者。

如下图所示,我可以移动按钮,

Button1 -> 右箭头 -> 对焦按钮 2

我注意到,向下移动时(从 Button2 到 Button4),焦点项框应位于 Button2 和 Button6 的边界内。

我想在按下时将 Button1 移动到 Button 3。 (Button3 不在 Button1 和 Button5 的边界内)

我该如何解决这个问题?

任何帮助将不胜感激。 提前致谢。

【问题讨论】:

你可以发送故事板文件吗? @ShahzaibQureshi:使用以下答案解决了这个问题。 【参考方案1】:

为此,您可以在按钮 3 的左侧放置 UIFocusGuide。(https://developer.apple.com/documentation/uikit/uifocusguide)

焦点指南是一个不可见的布局指南元素,它将“捕捉”焦点并将其重定向到您指定的任何视图。

编辑: Full documentation with Sample

例子:

let focusGuide = UIFocusGuide()
view.addLayoutGuide(focusGuide)
focusGuide.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
focusGuide.rightAnchor.constraint(equalTo: button3.rightAnchor).isActive = true
focusGuide.topAnchor.constraint(equalTo: button3.topAnchor).isActive = true
focusGuide.bottomAnchor.constraint(equalTo: button3.bottomAnchor).isActive = true
focusGuide.preferredFocusEnvironments = [button3]

【讨论】:

感谢您的支持。我已经用示例参考进行了编辑。

以上是关于TV OS UIFocusEnvironment 不聚焦按钮的主要内容,如果未能解决你的问题,请参考以下文章

一起看 I/O | Google TV 和 Android TV OS 的最新进展

Fire TV / Fire OS 的 Google 登录

如何使用 React Native 连接到 Android TV 模拟器(在 Mac OS 上)?

Google API vs Google Play vs Intel x86 vs Android TV vs Wear OS Intel x86 系统映像差异

Docker 卷挂载 NFS 共享的权限测试问题

Android TV端的(RecyclerView)水平滚动焦点错乱问题