我知道已经有很多问题要问这个问题了。但大多数问题已经过时或没有答案。我的实现问题不是预览,而是分页速度?
我可以在UICollectionView
中显示上一个/下一个单元格但是当我尝试快速滚动它时,它滚动(通过跳过)1或2页。当我以良好的速度滚动它时会发生这种情况。
注意,我使用的是自定义布局。
这是我的代码:
- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset
withScrollingVelocity:(CGPoint)velocity {
CGRect cvBounds = self.collectionView.bounds;
CGFloat halfWidth = cvBounds.size.width * 0.5f;
CGFloat proposedContentOffsetCenterX = proposedContentOffset.x + halfWidth;
NSArray* attributesArray = [self layoutAttributesForElementsInRect:cvBounds];
UICollectionViewLayoutAttributes* candidateAttributes;
for (UICollectionViewLayoutAttributes* attributes in attributesArray) {
// == Skip comparison with non-cell items (headers and footers) == //
if (attributes.representedElementCategory !=
UICollectionElementCategoryCell) {
continue;
}
// == First time in the loop == //
if(!candidateAttributes) {
candidateAttributes = attributes;
continue;
}
if (fabsf(attributes.center.x - proposedContentOffsetCenterX) <
fabsf(candidateAttributes.center.x - proposedContentOffsetCenterX)) {
candidateAttributes = attributes;
}
}
return CGPointMake(round(candidateAttributes.center.x - halfWidth), proposedContentOffset.y);
}
任何帮助都将受到高度赞赏。