子视图中的tvOS焦点按钮

时间:2017-01-31 10:31:28

标签: swift tvos avplayerviewcontroller focus-engine

我正在使用AVPlayerController,我在AVPlayerController上添加了一个子视图。显示子视图后,我想将焦点从播放器转移到Subview,并将UIButton的焦点放在Subivew之上。我尝试过preferredfocusview,但它是一个只读属性,我无法改变它。任何人都可以协助。非常感谢。

1 个答案:

答案 0 :(得分:2)

首先,不推荐使用preferredFocusView,因此您应该使用preferredFocusEnvironments

这是一个计算属性,这意味着你没有分配它,你可以覆盖它:

override var preferredFocusEnvironments: [UIFocusEnvironment] {
//if subview exists, return the subview or the button, whichever is focusable
    return [subview]
//otherwise use the default implementation of AVPlayerController
    return super.preferredFocusEnvironments
}

您还应该在添加子视图时致电self.setNeedsFocusUpdate()self.updateFocusIfNeeded()以请求焦点更新。