【问题标题】:UICollectionView doesn't fill up page entirely, how do I stop it from pushing items to the next page when they should be on one?UICollectionView 没有完全填满页面,当它们应该在一个页面上时,如何阻止它将项目推送到下一页?
【发布时间】:2014-06-12 08:27:19
【问题描述】:

我正在尝试水平设置 UICollectionView 页面,因此我需要将其垂直布局。但是,我的集合视图具有不同的网格结构;顶行有一个项目,而底行(有两行)有三个项目。

这种结构似乎不适用于垂直布局。似乎它先布局顶部图像,然后在底部放置第一个图像,然后返回顶部,看到没有更多空间,然后将下一个项目放在下一页上。无论出于何种原因,它都不会填满页面的其余部分,即使还有垂直空间(实际上还剩下两个空间),它也会跳转到下一页。

显然这根本不理想。有没有办法通过集合视图来阻止这种行为,并真正让它填满可用区域?

【问题讨论】:

    标签: ios objective-c cocoa-touch uicollectionview


    【解决方案1】:

    所以你的第一个项目与屏幕一样宽,接下来的三个各占屏幕的三分之一?

    似乎第三个项目的宽度不是问题,因为您有足够的空间容纳另外两个项目,但是高度呢?如果需要,请确保将以下方法设置为 0 间距(假设您的项目之间没有间距):

    -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
    {
        return UIEdgeInsetsZero;
    }
    
    -(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
    {
        return 0.0f;
    }
    
    -(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
    {
        return 0.0f;
    }
    

    【讨论】:

    • 你的第一句话是正确的。其他人的高度很好,因为它们都与底行的第一个高度相同,这显示得很好。是的,这些方法都返回零。
    • 你弄明白了吗?尝试将单元格和图像视图的 clipToBounds 设置为 YES。如果不是这样,请尝试没有图像的集合视图,只有背景颜色?
    • 两者都做了,没有运气。编写自定义布局。 ://
    • 您没有在单元格视图或集合视图中使用任何滚动视图,是吗?您需要添加 self.automaticallyAdjustsScrollViewInsets = NO;如果你是你的视图控制器。否则,这简直是荒谬的。
    猜你喜欢
    • 2017-11-03
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    相关资源
    最近更新 更多