问题
在iOS 14环境下, UICollectionView的 如下方法失效
- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated;
问题复现
- iPad iOS 14环境, 页面为横向Collectionview
- cell满屏, 左右整页滑动
原因:
未知, 这里暂时只给出解决办法, 欢迎大家讨论
解决办法:
放弃scrollToItemAtIndexPath
方案, 采用如下方案:
- 获取目标的位置
- 调用
setContentOffset:animation
方法, 并且设置动画
// 获取位置
UICollectionViewLayoutAttributes *layoutAttributes = [self.collectionView.collectionViewLayout layoutAttributesForItemAtIndexPath:indexPath];
// 滑动
[self.collectionView setContentOffset:layoutAttributes.frame.origin animated:YES];