ios - tvos UICollectionView 失去焦点到以前的 Focus Cell

标签 ios swift uicollectionview tvos uicollectionviewdelegate

我正在构建一个 tvos 应用程序。我有一个奇怪的错误,当我导航回那个特定 View 时,UICollectionView 失去了先前选择的单元格的焦点。场景是这样的。

我有两个 UIViewControllers ABA 有一个 UITableView,其中包含三个原型(prototype)单元格。每个单元格内部都有一个水平滚动的 UICollectionView。当我单击任何 UICollectionViewCell 时,它会导航到 B(详细信息页面)。我正在以模态方式呈现 B

现在,当我按下 Siri 上的菜单按钮时,远程 View A 再次出现(换句话说, View B 从 View 层次结构中删除)但当前选定的单元格与那时不同之前选择的。我尝试将 remembersLastFocusedIndexPathtruefalse 值一起使用,还尝试通过实现

func indexPathForPreferredFocusedViewInCollectionView(collectionView: UICollectionView) -> NSIndexPath?

但是当我导航回 View A 时,控件需要使用此函数。我还重新加载了 viewWillAppear 函数中的所有内容。

谁能帮帮我。谢谢

最佳答案

collectionView 的属性 remembersLastFocusedIndexPath 应设置为 true,tableView 的属性应设置为 false

此外,您是否在 viewWillAppear 中重新加载 UITableView,即当 B 弹出并出现 A 时,表格数据是否正在刷新? 如果是,则 lastFocusedIndexPath 在重新加载时将为零。

我们遇到了同样的问题。我们通过在弹出 B 时不重新加载内容来解决它。

维护一个标志说 didPush。按下 B 时将此标志设置为 true。当 A 出现时,检查是否设置了标志,然后才获取数据并重新加载表。

这对我们有用。

关于ios - tvos UICollectionView 失去焦点到以前的 Focus Cell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612603/

相关文章:

ios - 使用 IBDesignable 的水平虚线

ios - 你如何在 Swift 4 中创建文本字段填充?

Swift-拖动自定义 slider

swift - 如何删除 Collection View 中的部分

ios - swift - 使用委托(delegate)方法的返回值来设置变量

ios - 核心数据 : error: Failed to call designated initializer on NSManagedObject class

ios - xcode - 如何根据设备缩放 View 上的所有字体?

swift - 滚动 tableview 时 UISegment 值发生变化

ios - 如何使 UICollectionViewCell 适合其 subview (使用自动布局)

ios - 如何在 Collection View 单元格中设置多个图像?