web-dev-qa-db-ja.com

collectionviewのセクション間のスペースを削除します

コレクションビューのセクション間の間隔を調整する方法。

enter image description here

16
Bhanu Birani

ヘッダーの高さは、コレクションビューレイアウトのパラメーターを調整することで調整できます。以下は、完全に正常に機能するコードです。

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{
    if ([[sectionHeaderArray objectAtIndex:section] boolValue]) {
        return UIEdgeInsetsMake(10, 10, 10, 10);
    }
      return UIEdgeInsetsZero;
}
4
Swan

このメソッドを使用して、これを実装できます。

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{
    //{top, left, bottom, right}

    if ([[sectionHeaderStatusArray objectAtIndex:section] boolValue]) {
        return UIEdgeInsetsMake(23, 19, 46, 14);
    }

      return UIEdgeInsetsZero;
}
16
Mayank Birani

これがSwift 4.2バージョンです。

これにより、セクションごとにさまざまなはめ込み構成を設定できます。

/// Formats the insets for the various headers and sections.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    if section == 0 {
        // No insets for header in section 0
        return UIEdgeInsets.zero
    } else {
        // Normal insets for collection
        return UIEdgeInsets(top: 10.0, left: 10.0, bottom: 10.0, right: 10.0)
    }
}
4
Jason Machacek

これを試して:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
{
    if ([[sectionHeaderArray objectAtIndex:section] boolValue]) {
        return UIEdgeInsetsMake(top, left, bottom, right);
    }
      return UIEdgeInsetsZero;
}
2
Naresh Pagadala

これはレイアウトの問題であるため、コレクションビューに使用しているレイアウトに答えが返ってきます。 UICollectionViewFlowLayoutを使用している場合は、sectionInsetを設定する必要があります。例えば.

self.collectionView.collectionViewLayout.sectionInset = UIEdgeInsetsZero;
2
Graham Perks