gpt4 book ai didi

ios - UICollectionView 水平分页不居中

转载 作者:IT王子 更新时间:2023-10-29 07:42:57 31 4
gpt4 key购买 nike

我有一个水平滚动的 collectionView,每个单元格的大小都与 View 相同。当我翻阅 collectionView 时,它不会按单元格分页。单元格不在屏幕中央。我已经尝试了很多东西来尝试修复它并且没有任何运气。这是问题的视频: https://www.youtube.com/watch?v=tXsxWelk16w有什么想法吗?

最佳答案

删除项目之间的空格。对于水平滚动的 Collection View ,将最小行间距设置为 0。您可以使用界面构建器或 UICollectionViewDelegateFlowLayout 协议(protocol)的方法来执行此操作:

- (CGFloat)collectionView:(UICollectionView *)collectionView 
layout:(UICollectionViewLayout *)collectionViewLayout
minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 0;
}

enter image description here

另一种方法是使您的单元格宽度小于 collectionView 的宽度,以获得项目之间的水平空间值。然后添加部分插图,其左右插图等于项目之间水平空间的一半。例如,您的最小行距为 10:

- (CGFloat)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 10;
}

- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(collectionView.frame.size.width - 10, collectionView.frame.size.height);
}

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0, 5, 0, 5);
}

enter image description here

第三种方式:在scrollViewDidEndDecelerating:方法中操作collectionView滚动:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (scrollView == self.collectionView) {
CGPoint currentCellOffset = self.collectionView.contentOffset;
currentCellOffset.x += self.collectionView.frame.size.width / 2;
NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:currentCellOffset];
[self.collectionView scrollToItemAtIndexPath:indexPath
atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally
animated:YES];
}
}

enter image description here

关于ios - UICollectionView 水平分页不居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658328/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com