UICollectionView 没有滚动到 indexPath
Posted
技术标签:
【中文标题】UICollectionView 没有滚动到 indexPath【英文标题】:UICollectionView isn't scrolling to indexPath 【发布时间】:2015-06-04 22:33:12 【问题描述】:我有一个UICollectionView
,我将translatesAutoresizingMaskIntoConstraints
设置为NO
,并添加了一些constraints
。当我尝试将其滚动到 indexPath
:
[self.datesCollectionView selectItemAtIndexPath:selectedCellIndexPath animated:YES scrollPosition:UICollectionViewScrollPositionCenteredHorizontally];
然后它完全忽略了这一点,并且不滚动。但是当我删除translatesAutoresizingMaskIntoConstraints
时,它会滚动,但会忽略约束。
我的问题是,当translatesAutoresizingMaskIntoConstraints
设置为NO
时,如何让collectionView
滚动到indexPath
?
【问题讨论】:
单元格是否被选中,或者您没有看到任何效果?您有多少个单元格,一次屏幕上有多少个单元格? 单元格被选中,当它们被手动选中时,它们会滚动到中心。我总共有大约 365 个cells
。 6 cells
可见。
你不应该做任何特别的事情来让它工作。它适用于我使用你的约束(来自你之前的问题)。我的测试应用程序来证明这一点,jmp.sh/XmzrjzY
感谢您的回复!!这是一个有问题的项目的链接:jmp.sh/ZFJrPl7
您链接到的项目不包含集合视图。
【参考方案1】:
查看您的代码后,我发现了问题。我不确定为什么会这样,但是在应用约束后集合视图的contentSize
为零。添加对layoutIfNeeded
的调用到setSelectedDate:
或setDates:
解决了问题,
- (void)setDates:(NSArray *)dates
_dates = dates;
[self.datesCollectionView layoutIfNeeded];
[self.datesCollectionView reloadData];
self.selectedDate = nil;
【讨论】:
以上是关于UICollectionView 没有滚动到 indexPath的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法自动滚动到 UICollectionView 的底部