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