14

コレクション ビューがあり、正常に動作しており、X パディングの分離を調整しました。

それは正常に動作しますが、セル間のYパディングについては、NO分離に調整されていないようです

これはレイアウトの私のコードです

UICollectionViewFlowLayout *layoutItem=[[UICollectionViewFlowLayout alloc] init];
    layoutItem.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);

ここに画像の説明を入力 では、上下の分離を 0px に設定するにはどうすればよいでしょうか。細胞間?、

ありがとう!

4

2 に答える 2

46

最初は上部の y パディングのみが表示されます。下の y パディングを表示するには、CollectionView フレームの高さよりも多くのデータが必要です。コレクション ビューを上にスクロールすると、下の y パディングが表示されます。

このようにcollectionViewを使用しました

https://stackoverflow.com/a/17856406/1305001

私が設定したとき

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

出力は初回として来ます..

ここに画像の説明を入力

collectionView を上にスクロールすると、下のパディングが表示されます。

ここに画像の説明を入力

セル間の垂直線の間隔に使用します

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

のようになります

ここに画像の説明を入力

于 2013-08-03T06:34:30.127 に答える
5

コレクション ビュー フロー レイアウトを使用すると、はるかに簡単な方法で行うこともできます。

フロー レイアウトを設定します (ヘッダーにデリゲートを追加することを忘れないでください)。

UICollectionViewFlowLayout * stickerFlowLayout = [[UICollectionViewFlowLayout alloc] init];

stickerFlowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
**stickerFlowLayout.minimumLineSpacing = 10;**
stickerFlowLayout.minimumInteritemSpacing = 5;
stickerFlowLayout.sectionInset = UIEdgeInsetsMake(10, 25, 20, 25);

// Set up the collection view 
collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:stickerFlowLayout];
collectionView.delegate = self;
collectionView.dataSource = self;

etc

ご覧のとおり、次を使用して行間隔を簡単に設定できます。

**stickerFlowLayout.minimumLineSpacing = 10;**

他の属性を変更することもできます

stickerFlowLayout.minimumInteritemSpacing = 5;

アイテム間のスペースに影響を与えるアイテム間のスペース (似ていますが、行間とは異なります)

フロー レイアウトを使用すると、膨大な量のコードを節約し、コレクション ビューをプログラムによってすべて 1 か所で設定できます (インセットと行間隔を設定するだけで、不要な 2 つの機能をすぐに節約できました)。

于 2014-06-19T05:59:28.333 に答える