ios - 奇怪的索引行为 UICollectionView
问题描述
我有一个包含 64 个项目的 UICollectionView。用户之前可以点击屏幕中的各种选项,我的目标是将此轮播加载到用户选择的索引/项目中。
我们在屏幕上同时显示 3 个项目,它们的选择居中。
因此,如果用户从前一个屏幕中选择项目 8,当我们推送时,我希望集合视图位于项目 8 上,他们仍然会在屏幕两侧看到 7 和 9。
所有这些都有效,但我得到了一些奇怪的分页行为。
在viewDidAppear
:
carousel.selectItem(at: IndexPath(row: selectedId, section: 0), animated: false, scrollPosition: .centeredHorizontally)
carousel.reloadData()
但是当我向左或向右翻页时,它似乎总是在第一个索引上,而不是用户选择的那个。
关于我在这里做错了什么的任何线索?谢谢
解决方案
可能是您需要在选择项目之前重新加载数据。
也可以尝试:
scrollToItem(at: selectedItemIndexPath, at: .center, animated: false)
推荐阅读
- android - 将此 LinearLayout 转换为约束布局
- elasticsearch - lucene中与项目列表匹配的子字符串
- r - 如何计算R中内核估计的Kullback-leiber散度
- npm - 在我在 vuetify 项目中使用的包中加载 vuetify
- c - 当 unsigned short int 不是时,为什么 unsigned int 存储负值?unsigned int 值没有像应有的那样环绕
- javascript - 检查设备是否支持 ScreenOrientation.lock() - 未捕获的错误 screen.orientation.lock() 在此设备上不可用
- elasticsearch - 用于计算索引中文档数据数量的 Elasticsearch 查询
- javascript - 过滤 csv 中的唯一值并将计数添加为新列
- mongodb - 无法使用 DNS Seedlist 连接格式连接,但可以正常使用标准连接字符串
- dataframe - Spark Scala,使用 SaveMode.Append 写入数据,同时覆盖一些现有分区