我尝试以编程方式将焦点从一个视图移动到另一个视图,就像单击按钮一样,我尝试在集合视图中选择索引。
我试图复制SIRI的工作功能,因为SIRI不对开发人员开放,但我将通过bonjour向应用程序发送要播放的节目,以便它播放它。唯一的一点是,在播放视频之前,应该关注节目(即索引路径),就像NBC应用程序在tvOS中所做的那样。
我试探着:
- collectionView.selectItemAtIndexPath(selectedIndexPath, animated: false, scrollPosition: .None)
collectionView.reloadData()
setNeedsFocusUpdate()
collectionView.updateFocusIfNeeded()
似乎没有什么是工作和移动的重点,以给定的指数,我想知道这是可能的tvOS或没有?
我正在构建一个tvOS原生应用程序。
1条答案
按热度按时间qlvxas9a1#
根据App Programming Guide for tvOS:没有明确的方法可以通过编程将焦点从一个视图移动到另一个视图。
焦点引擎控制焦点
只有焦点引擎可以显式地更新焦点,这意味着没有API可以直接设置焦点视图或在某个方向上移动焦点。
焦点引擎控制焦点,以确保它不会意外地在屏幕上移动,并且在不同的应用程序中行为相似。
但是,您可以让UICollectionViewDelegate为集合视图的首选焦点项指定索引路径,当集合视图成为焦点时,它将成为该索引路径的焦点:
此委派方法的功能相当于覆写UIFocusEnvironment通信协定中UICollectionView类别的preferredFocusedView方法。如果集合检视的remembersLastFocusedIndexPath方法设定为YES,则此方法会定义第一次取得集合检视焦点时取得焦点的索引路径。