【发布时间】:2016-05-13 21:00:18
【问题描述】:
我正在快速开发一个 tvOS 应用程序。我在应用程序中使用UITabBarController。
我的要求是在 10 秒后自动隐藏标签栏,并且焦点可以移动到标签栏项目内的AVPlayerViewController。
我试图覆盖preferredFocusedView,但焦点无法移动到AVPlayerViewController。
func updateFocus() {
self.playerController.view.hidden = false
self.playerController.view.alpha = 1.0
self.playerController.view.userInteractionEnabled = true
self.playerController.view.layer.zPosition = 1.0
self.preferredFocusedView
setNeedsFocusUpdate()
updateFocusIfNeeded()
}
override var preferredFocusedView: UIView? {
return self.playerController.view
}
请建议我如何以编程方式移动焦点。
【问题讨论】:
-
确保 self.playerController.view.superView 是可聚焦的
-
抱歉,我返回了 self.playerController.view。
-
放置一个断点并检查该视图是否从 canBecameFocus 返回 true,您可以通过在控制台上执行此命令来做到这一点 [view _whyIsThisViewNotFocusable]
-
self.playerController.view 是 facusable 因为我向下滑动到远程然后焦点移动到 AVPlayerViewController 但不是以编程方式。
-
我已经检查了 self.playerController.view.canBecomeFocused() 和它的返回 true 但能够在控制台上执行命令。