UICollectionview 不通过 selectItem 功能 IOS 滚动到项目
Posted
技术标签:
【中文标题】UICollectionview 不通过 selectItem 功能 IOS 滚动到项目【英文标题】:UICollectionview not scroll to item by selectItem function IOS 【发布时间】:2018-05-01 14:00:19 【问题描述】:collectionView这个功能无法滚动到Item
collectionView.selectItem(at: IndexPath(row: 10 , section: 0), animated: true, scrollPosition: UICollectionViewScrollPosition.centeredHorizontally)
这个 CollectionView 是水平的
【问题讨论】:
集合视图的框架是否正确或大于容器(例如手机屏幕) 它在一个scrollView的UIview里面,我的意思是UIScrollView有UIView,而UIView里面是UIcollectionView,我把截图发给你 如果你向左/向右滑动可以到达集合视图的开头和结尾 是的,我可以,但是通过代码无法滚动到选定的项目,我不知道为什么会发生这种情况:( 试试其他选项:UICollectionViewScrollPosition
,看看有没有区别
【参考方案1】:
您当前只是在 indexPath 处选择集合视图项目,这不会滚动到项目。 您需要在所选项目的位置滚动。添加以下滚动方法:
collectionView.selectItem(at: IndexPath(row: 10 , section: 0), animated: true, scrollPosition: UICollectionViewScrollPosition.centeredHorizontally)
collectionView.scrollToItem(at: IndexPath(row: 10 , section: 0), at: .centeredHorizontally, animated: true)
【讨论】:
我也做了这个功能,但还不行:( - 我想重新布局 ViewController 可能我在框架中犯了错误,但我不知道为什么会出现这个问题 您是否以编程方式创建了collectionView
?
不,我在 StoryBoard 中创建的,我的 ControllerView 有 3 个 UICollectionView
@omidshojaeyan,那么,您正在为哪个集合视图滚动项目位置?你在哪里写上面的代码?
我都是在ViewController中写的。此链接在录制的短屏幕上显示我的问题,链接:sendvid.com/tu5ol63h【参考方案2】:
谢谢大家。我用这段代码解决了。我的错误代码是 self.categoryItemsCollection.selectItem(at: IndexPath(row: indexPath.section, section: 0), animated: true, scrollPosition: UICollectionViewScrollPosition.centeredHorizontally)
只需将 scrollPosition 参数更改为 .centeredHorizontally self.categoryItemsCollection.selectItem(at: IndexPath(row: indexPath.section, section: 0), animated: true, scrollPosition: .centeredHorizontally)
【讨论】:
不是预期的答案,但是当我在垂直滚动时设置选定的索引时,我的收藏视图不滚动,设置 scrollPosition: .centeredHorizontally 取消滚动。以上是关于UICollectionview 不通过 selectItem 功能 IOS 滚动到项目的主要内容,如果未能解决你的问题,请参考以下文章
无法通过移动它们来重新排列 UICollectionView 中的单元格?
iOS:`UICollectionview`,如何通过它的`indexPath`得到一个单元格的`contentoffset`