【问题标题】:tvOS Focus button in a Subview子视图中的 tvOS 焦点按钮
【发布时间】:2017-01-31 10:31:27
【问题描述】:

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

【问题讨论】:

    标签: swift tvos avplayerviewcontroller focus-engine


    【解决方案1】:

    首先,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() 来请求焦点更新。

    【讨论】:

    • 我在视图中有一些按钮,视图获得焦点,但按钮没有获得焦点。如何解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多