问题标签 [uifocusguide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tvos - 使用容器 ViewControllers 时如何管理焦点
当您有容器视图/视图时,如何在 tvOS 中管理FocusGuide ?我正在使用 MasterViewController 并且有多个容器视图控制器,它们的作用就像UITabBarController一样。但是当我在按钮之间导航时,它不会导航到选定的 viewController 的首选焦点环境。按钮水平排列,容器视图控制器始终位于选项卡下方。我不知道如何管理它们。
swift - 无法将按钮焦点移动到下一行
我这里有 3 个按钮。Btn2
被禁用。专注时Btn1
,我无法将其移至Btn3
。
我所需要的只是当Btn2
被禁用时,我可以通过在电视控制器上向下Btn1
和Btn3
向上滑动来移动。
我试图实施焦点指南,但没有运气
topAnchor、bottomAnchor 等到底是什么?没有这方面的文档。请解释一下。谢谢!
swift - tvOS 中的“AVFocusProxyView”是什么?得到一个奇怪的焦点问题
什么是AVFocusProxyView
?当我们AVContentProposal
在全屏播放器顶部显示时,AVFocusProxyView
隐藏了接受/拒绝按钮。发生这种情况时,我无法移动焦点。我在 UIFocusDebugger 控制台上收到以下错误:
这是错误:
- 问题:该项目被以下项目视觉遮挡:AVFocusProxyView 0x149e22600
如何解决这个问题?没有关于AVFocusProxyView
.
AVFocusProxyView 出现在每个按钮/视图的顶部。
由于`AVFocusProxyView`我们面临的焦点问题的解决方案。
由于. AVFocusProxyView
_ AVContentProposal
解决方法是添加UIFocusGuide
:
tvos - 如何使用自定义控件管理 AVPlayerViewController 中的焦点处理?
我尝试在AVPlayerViewController
tvOS 电影应用程序中添加一个跳过介绍按钮(如 Netflix)。我将它作为子视图添加到 中contentOverlayView
,当我让它出现时,我强制使用preferredFocusEnvironments
. 一切都很好......直到用户导航到其他地方(例如搜索栏或视频资产信息视图)。然后按钮失去焦点(预期),并且永远不能通过用户交互再次获得焦点。我尝试过了:
- 添加一个
UIFocusGuide()
- 把我的按钮直接放在
AVPlayerViewController
's view - 添加一个自己的子视图,其中包含到视图的
AVPlayerViewController
按钮 - 添加一个自己的子视图,其中包含按钮
contentOverlayView
- 在同一子视图上的我的按钮旁边、下方、上方添加其他几个按钮(对于上述每种情况)
最后一种方法表明,其他按钮都无法通过用户交互获得焦点,因此看起来,出于同样的原因,用户无法关注 skip-intro-button。但这是什么原因呢?添加自定义交互元素的正确做法是什么AVPlayerViewController
?有人有什么想法吗?
swift - UISegmentedControl 聚焦时如何更改白色背景?
如果UISegmentedControl获得焦点,我会尝试更改段中的白色背景颜色。请看以下截图:
所以我创建了UISegmentedControl和ovveride didUpdateFocus(in:with:)的子类, 请看下面的截图:
但是在那之后焦点不再改变,我不能跳到UISegmentedControl的下一部分。
我在这里看到了类似的问题,但我没有成功。
它是 tvOS,部署目标是 11.1。
这是为什么?聚焦时更改背景颜色的更好方法是什么?请帮我。
objective-c - UIFocusGuide:仅在系统无解时转发
我在屏幕底部有一个宽阔的“停靠”区域。我在它的顶部放置了一个 UIFocusGuide。根据 Dock 中的哪个元素有焦点,如果用户向上滑动,系统可能有也可能没有焦点解决方案。
如果有,我如何告诉我的焦点指南使用系统计算的新焦点项目,但如果没有,它应该使用我在setPreferredFocusEnvironments:
或者,有没有办法确定“向上滑动”将焦点放在哪里而不实际执行?随着 Dock 中的焦点元素发生变化,我可以检查它,如果系统没有提供目的地,我可以添加一个。
我的 Dock 是主视图控制器中的一个视图,preferredFocusEnvironments
但当用户尝试从 Dock 中的元素移动到不存在的视图时,它永远不会被调用。
uicollectionview - 如何在集合视图中手动选择下一个重点索引路径
如何在 tvOS 上为我的集合视图手动决定下一个重点索引路径?
我的用例是我有一个集合视图,其中包含向各个方向滚动的动态单元格,有时当一个部分中的一个单元格跨越下一个部分中的多个单元格时,我希望能够手动决定接下来关注哪个单元格。
默认行为似乎是集合视图将选择前一个中间的单元格。
例如,绿色单元格当前处于焦点位置。当我向下导航时,集合视图想要关注红色单元格,但我希望接下来关注蓝色单元格。
我最初的想法是实现collectionView(_:shouldUpdateFocusIn:)
委托功能,并false
在集合视图选择“错误”索引路径时返回+触发焦点更新。
但是,由于某种原因,shouldUpdateFocusIn
当我从它返回时会被调用多次false
并导致明显的滞后。
下一个想法是在 中做同样的事情collectionView(_:didUpdateFocusIn:with:)
,但在这种情况下,我们只在焦点已经移动到“错误”单元格之后才更新焦点,因此用户可以清楚地看到焦点从错误单元格移动到正确单元格.
也不理想。
我正在使用我自己的 and 子类UICollectionViewLayout
,UICollectionView
但是我没有看到任何我可以覆盖的东西,以便能够手动决定在shouldUpdateFocusIn
调用之前向上/向下/向左/向右导航时接下来要关注的索引路径。
有什么办法可以做到这一点?