按钮不可聚焦,因为它遥不可及 - tvOS Swift

时间:2016-10-13 16:17:54

标签: swift tvos focus-engine

我正在创建一个tvOS电影浏览器。此视图包含电影描述并显示4个内容:电影封面图像,电影描述文本,观看按钮以及电影演员表的集合视图(蓝色框)。 preferredFocusView设置为watchButton。但是,一旦我将焦点切换到它下方的集合视图,如果演员阵容太短,我将无法再次关注观看按钮。

The watch button is focusable here since the cast extends to just below the button

The watch button IS NOT focusable here

最终,我知道我可以通过重新排列UI来修复它,以便监视按钮直接位于第一个演员之上,但我想知道是否有实际的方法来实现我想要的原始外观。 / p>

谢谢!

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我在视图控制器中添加了一个焦点指南。

private var focusGuide: UIFocusGuide!

并在viewDidLoad中:

// Create focus guide
focusGuide = UIFocusGuide()
view.addLayoutGuide(focusGuide)

focusGuide.leftAnchor.constraint(equalTo: header.imageView.leftAnchor).isActive = true
focusGuide.bottomAnchor.constraint(equalTo: header.imageView.bottomAnchor).isActive = true
focusGuide.widthAnchor.constraint(equalTo: header.imageView.widthAnchor).isActive = true
focusGuide.heightAnchor.constraint(equalTo: header.watchButton.heightAnchor).isActive = true