4

UICollectionView-如何删除第一个单元格上方的间距?

我的顶部插图 = 0,线条 = 10

在此处输入图像描述

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{


if (indexPath.row == 0) {
    return CGSizeMake(collectionView.width, 44);
}
return CGSizeMake(300, 150);
}

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

似乎与将第一个单元格设置为不同大小有关

如果我删除 sizeForItemAtIndexPath 中对 row ==0 的检查并为所有单元格返回相同的值,则它与顶部齐平。

有任何想法吗?

4

5 回答 5

11

解决方案就是在里面写viewDidLoad

self.automaticallyAdjustsScrollViewInsets = NO;
于 2014-07-29T12:13:03.797 回答
8

我是按照以下方式进行的(在 iOS7 上测试,55是一个神奇的值):

#pragma mark - UICollectionViewDelegateFlowLayout

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
    //-55 is a tweak value to remove top spacing
    return CGSizeMake(1, -55);
}

使用您的代码的替代方法:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
    return UIEdgeInsetsMake(-55, 10, 10, 10);
}
于 2013-10-20T12:48:10.487 回答
7

如果您想使用 Interface Builder,您可以取消选中 View Controller 的 Attribute Inspector 上的“Adjust Scroll View Insets”:

在此处取消选中。

或者使用 Amit 的答案以编程方式进行。

于 2015-04-01T15:45:50.713 回答
1

我不认为这是你的顶级插图。使用您应用的一些代码编辑您的问题。

如果它是 collectionView 插图,那么它应该通过将 0 作为顶部插图来删除。

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

以下布局委托用于行间距。

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
    return 30;
}
于 2013-07-26T09:55:33.727 回答
0

使用 srtuct 和 spring 像这样设置 collectionview 自动调整大小的掩码,并确保将框架 y 设置为 0

在此处输入图像描述

于 2013-07-26T09:18:01.870 回答