如何在 tvos 应用程序中将焦点移动到 collectionview 单元格中的按钮?
How to move focus at button in collectionview cell in tvos application?
我正在开发 Apple TV 应用程序。在我的应用程序中,我制作了一个具有集合视图的屏幕。在那种情况下,我可以将焦点移动到集合视图单元格,但无法将焦点移动到集合视图单元格中的按钮,所以有人可以帮我解决这个问题吗?
如果有人知道这个答案,请给我一个答案。
我认为此页面将指导您实现您想要的。 https://developer.apple.com/library/content/documentation/General/Conceptual/AppleTV_PG/WorkingwiththeAppleTVRemote.html#//apple_ref/doc/uid/TP40015241-CH5-SW4
它很好地解释了焦点引擎将如何决定哪个对象应该获得下一个焦点。下面是在 above link.
的详细解释
下面是一个示例,说明如何确定焦点:
- 焦点引擎向根 window 请求它的 preferredFocusedView,
return 是它的根视图控制器的 preferredFocusedView
目的。
- 根视图控制器,一个选项卡视图控制器,return它的
select 视图控制器的 preferredFocusedView 对象。
- select 视图控制器将其 preferredFocusedView 方法覆盖到 return 特定的 UIButton 实例。
- UIButton 实例 return 自身(默认),并且是可聚焦的,因此它被聚焦引擎选为下一个聚焦视图。
您必须覆盖 UIView 或 UIViewController 的 preferredFoucsedView 属性。
override weak var preferredFocusedView: UIView? {
if someCondition {
return theViewYouWant
} else {
return defaultView
}
}
感谢回答
我可以通过在 collectionViewCell 子类中添加以下方法来解决这个问题。
在 CollectionViewCell 子类中
override var preferredFocusEnvironments: [UIFocusEnvironment]{
// Condition
}
override func shouldUpdateFocus(in context: UIFocusUpdateContext) -> Bool {
// Condition
}
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
// Condition
}
你可以在这里看到更多 link:
enter link description here.
我正在开发 Apple TV 应用程序。在我的应用程序中,我制作了一个具有集合视图的屏幕。在那种情况下,我可以将焦点移动到集合视图单元格,但无法将焦点移动到集合视图单元格中的按钮,所以有人可以帮我解决这个问题吗?
如果有人知道这个答案,请给我一个答案。
我认为此页面将指导您实现您想要的。 https://developer.apple.com/library/content/documentation/General/Conceptual/AppleTV_PG/WorkingwiththeAppleTVRemote.html#//apple_ref/doc/uid/TP40015241-CH5-SW4
它很好地解释了焦点引擎将如何决定哪个对象应该获得下一个焦点。下面是在 above link.
的详细解释下面是一个示例,说明如何确定焦点:
- 焦点引擎向根 window 请求它的 preferredFocusedView, return 是它的根视图控制器的 preferredFocusedView 目的。
- 根视图控制器,一个选项卡视图控制器,return它的 select 视图控制器的 preferredFocusedView 对象。
- select 视图控制器将其 preferredFocusedView 方法覆盖到 return 特定的 UIButton 实例。
- UIButton 实例 return 自身(默认),并且是可聚焦的,因此它被聚焦引擎选为下一个聚焦视图。
您必须覆盖 UIView 或 UIViewController 的 preferredFoucsedView 属性。
override weak var preferredFocusedView: UIView? {
if someCondition {
return theViewYouWant
} else {
return defaultView
}
}
感谢
我可以通过在 collectionViewCell 子类中添加以下方法来解决这个问题。
在 CollectionViewCell 子类中
override var preferredFocusEnvironments: [UIFocusEnvironment]{
// Condition
}
override func shouldUpdateFocus(in context: UIFocusUpdateContext) -> Bool {
// Condition
}
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
// Condition
}
你可以在这里看到更多 link: enter link description here.