我正在创建一个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
最后,我知道我可以通过重新排列用户界面来修复它,使watch按钮直接位于第一个cast成员的上方,但我想知道是否有一种实际的方法来实现我想要的原始外观。
谢谢!

最佳答案

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

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

07-26 04:01