2012-10-02 18 views
7

私は、各セクションに水平スクロールとヘッダーとフッターを持つ標準のFlowLayoutクラスを使用してCollectionViewを持っています。UICollectionView:フッターとヘッダーの間にスペースを追加する方法は?

フッターとヘッダービューの間に(つまりセクション間に)ゼロピクセルがあります。私はそれらの間に少しのスペースを追加したいと思いますが、最初のセクションの上または最後のセクションの上には追加しません。だから私はヘッダーとフッターのビュー自体にそのスペースを追加することはできません。

私は "interSectionSpacing"のようなものを期待していましたが、明らかにそのような設定はありません。何か案は?

答えて

9

このような設定はありません。これは私が終わったものです:

ヘッダービューの内容をヘッダービュー自体の一番下に揃えるように設定しました。ヘッダービューを高くしても見た目の高さが同じに見えますそのコンテンツよりも(自動レイアウトはこれを本当に簡単にします)。


#define kHeaderHeight 42 
#define kInterSectionMargin 8 

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0) { 
     return CGSizeMake(0, kHeaderHeight); 
    } 
    return CGSizeMake(0, kHeaderHeight + kInterSectionMargin); 
} 

今節の間に少しスペースがなく、最初のセクションの前に、あります:

は、その後、私はUICollectionViewFlowLayoutのこのデリゲートメソッドにセクションインデックスに応じて、ヘッダーの高さを設定します。

+1

が正しいか前にもスペースが追加されます - それはあなたが行うことになっているまさにです。あなたはヘッダービューを担当しています。あなたが正しく言うように、その目に見える内容とその「高さ」は2つの異なるものです。 – matt

0

Nibファイルでヘッダーとフッターの間隔を設定できます。 「コレクションビュー」の「サイズインスペクタ」に移動し、「ヘッダサイズの高さ」を望ましい値に設定します。

+0

私はあなたがここで何をしようとして知っている、しかし、あなたが何をしたか最初のヘッダー –

1

「interSectionSpacing」のようなものはありませんが、近いものがあります。

UICollectionViewFlowLayoutsectionInsetをお試しください。

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; 
[flowLayout setSectionInset:UIEdgeInsetsMake(top, left, bottom, right)]; 
+0

ヘッダーとコンテンツ、コンテンツとフッターの間の距離を指定します。しかし、フッターとヘッダーの間ではないので、関連している間に、元のポスターが必要なものではありません –