Dan*_*iel 5 uikit ios uicollectionview tvos
在我的 tvOS 应用程序中,我有一个集合视图,我已将其设置remembersLastFocusedIndexPath为true. 由于这不足以获得这种行为,我还重写了我的方法,UIViewController如下所示:
override weak var preferredFocusedView: UIView? {
return collectionView
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我由于某些原因开始重新加载集合视图。如果集合视图可见,我调用collectionView.reloadData().
不过,如果我在集合视图不可见时重新加载,例如,当我在点击其中一项后处于详细视图中时,这将不起作用。当我回到网格时,聚焦的索引路径不是我点击的路径。
作为解决方法,我正在管理这种不理想的情况:
collectionView.reloadData()在集合视图可见时调用(因为我知道最后一个聚焦索引在这里不会更改)。collectionView.reloadData()是viewDidAppear(animated: Bool)为了在用户回来时提供最新的内容。我怎样才能正确地做到这一点?提前致谢。
最近我也遇到这个问题了,我的情况和你差不多。
我也打电话collectionView.reloadData()过去viewDidLoadviewWillAppear
进而
我从
collectionView.reloadData()
Run Code Online (Sandbox Code Playgroud)
到
collectionView.reloadItemsAtIndexPaths(collectionView.indexPathsForVisibleItems())
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下对我有效,仍有大约 <5% 的机会弄乱最后的焦点索引
| 归档时间: |
|
| 查看次数: |
3611 次 |
| 最近记录: |