31

セル幅が 67 の UICollectionView を使用していますが、現在はフロー レイアウトを使用しています。

セル間に 30px のスペースがある 3 つのセルが連続しています。4 つのセルを一列に並べられるようにするには、どうすればその距離を縮めることができるでしょうか? この方法は何か関係がありますか?

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

8 に答える 8

44

この UICollectionViewFlowLayoutDelegate方法はあなたを助ける..

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section  
  {
    return 10; // This is the minimum inter item spacing, can be more
  }

セルを配置するためにさらにスペースが必要な場合は、もう1つ調整しedgeInsetsます

于 2013-03-20T04:13:37.837 に答える
20

次のプロパティを使用して、セルまたは行間の間隔を構成できます。
1) 行間のスペースを設定するため。

[self.collectionView setMinimumLineSpacing:5];

2) アイテム/セル間のスペースを設定するため。

[self.collectionView setMinimumInteritemSpacing:5];

InterfaceBuilder(IB)から設定することもできます。ストーリーボード/Xib ファイルから UICollectionView を選択し、下の画像で指定されている サイズ インスペクターをクリックするだけです。ここに画像の説明を入力

于 2016-10-13T11:53:17.493 に答える
11

いいえ、そうではありません。レイアウトを変更するだけminimumInteritemSpacingです。

于 2013-03-20T03:04:38.443 に答える
6

次のようなデリゲート メソッドを使用できます。- セクション内のセル間のスペースを変更する場合。

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionView *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section  

異なるセクションのセル間の上下のパディングを表示します。

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section 

// Layout: Set Edges //セルのインセットを設定する

- (UIEdgeInsets)collectionView:
(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section 
//top,left,botttom,right
于 2014-09-09T05:14:36.650 に答える
3

スイフト3.0

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {

    if DEVICE_IDIOM == .pad {
        return 15.0
    }
    else {
        return 10.0
    }
}
于 2017-04-21T09:55:42.770 に答える
2

私は同じ問題を抱えていた..

私の場合、長方形のセルが必要でした。

望ましい結果を得るために、UICollectionViewDelegateFlowLayoutを使用しました。

これは、メソッドの1つの私の実装です:

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
{
    CGFloat width = CGRectGetWidth(self.view.frame)/3.0f;
    return CGSizeMake(width, (width * 1.1f));
}

これは私にとってはうまくいきました!誰かの役に立てば幸いです。

于 2015-10-16T03:37:21.020 に答える