【发布时间】:2016-01-29 11:08:18
【问题描述】:
在我的 tvOS 应用程序中,我有一个集合视图,我已将其 remembersLastFocusedIndexPath 设置为 true。由于这还不足以获得这种行为,我还在我的UIViewController 中重写了一个方法,如下所示:
override weak var preferredFocusedView: UIView? {
return collectionView
}
在我出于某些原因开始重新加载集合视图之前,这一切正常。如果集合视图可见,我调用collectionView.reloadData(),它确实有效。
但是,如果我在集合视图不可见时重新加载,例如,当我在点击其中一个项目后处于详细视图中时,这不起作用。当我回到网格时,焦点索引路径不是我点击的那个。
作为一种解决方法,我正在处理这种不理想的情况:
- 由于来自后端的新数据触发了重新加载,因此我只在集合视图可见时调用
collectionView.reloadData()(因为我知道最后一个焦点索引在这里不会改变)。 - 我在
viewDidAppear(animated: Bool)中调用collectionView.reloadData(),以便在用户回来时提供最新内容。
我怎样才能正确地做到这一点?提前致谢。
【问题讨论】:
-
您能否将最后一个索引路径保存在您控制的另一个变量(即 int)中?有没有可以用来更新变量的委托方法?
标签: ios uicollectionview uikit tvos