微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在tvOS中重新加载数据后,Collection视图的最后一个聚焦索引路径丢失了

在我的tvOS应用程序中,我有一个集合视图,我将其remembersLastFocusedindexPath设置为true.由于这还不足以得到这种行为,我还在我的UIViewController中重写了一个方法,如下所示:

override weak var preferredFocusedView: UIView? {
    return collectionView
}

这工作正常,直到我开始重新加载集合视图出于某些原因.如果作为集合视图可见,我调用collectionView.reloadData(),它确实有效.

如果我在集合视图不可见时进行重新加载,例如,当我在点击其中一个项目后进入详细视图时,这不起作用.当我回到网格时,聚焦的索引路径不是我点击的路径.

作为一种解决方法,我正在管理这种非理想情况:

>由于来自我的后端的新数据触发了重新加载,我只在集合视图可见时调用collectionView.reloadData()(因为我知道最后一个聚焦索引在这里没有改变).
>我在viewDidAppear(动画:Bool)中调用collectionView.reloadData()以在用户返回时获得最新内容.

我该怎么做呢?提前致谢.

解决方法

最近我也遇到了这个问题,我的情况对你来说几乎是一样的.

我还在viewDidLoad和viewWillAppear中调用了collectionView.reloadData()

然后

我改变了

collectionView.reloadData()

collectionView.reloadItemsAtIndexPaths(collectionView.indexPathsForVisibleItems())

它大部分时间都适用于我,仍然有大约<5%的机会搞乱最后的焦点指数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐