tvos如何始终关注特定的tableViewCell

时间:2018-05-23 08:06:15

标签: ios focus tvos focus-engine

我已经创建了tvOs应用程序并且使用了焦点引擎。

我有tableview,并设置remembersLastFocusedIndexPath为真。我必须覆盖indexPathForPreferredFocusedView。当我第一次关注时,indexPathForPreferredFocusedView被调用,我得到了细胞聚焦,我需要什么。但在其他时候,我得到了最后一个聚焦索引路径。当我将remembersLastFocusedIndexPath定义为false时,indexPathForPreferredFocusedView未被调用。

我需要做什么,只关注细胞,我需要什么?

2 个答案:

答案 0 :(得分:0)

覆盖以下函数并返回要聚焦的索引路径。

override func indexPathForPreferredFocusedView(in tableView: UITableView) -> IndexPath? {}

demo

答案 1 :(得分:0)

indexPathForPreferredFocusedView仅在视图将要首次获得焦点或在重新加载期间被调用一次。

如果您希望获得其他一些“聚焦”行为,则可以尝试使用preferredFocusEnvironments来获得聚焦行为。

此外,它将聚焦于最后聚焦的IndexPath,因为这是tvOS中的默认行为。变量restoreFocusAfteViewTransition默认情况下设置为true。您可以在ViewController中将其更改为false,然后检查是否能够实现所需的功能。