0

UICollectionViewを使うのは初めてでなかなか面白いのですが、以下の問題にぶち当たりました。何が起こっているのかを明確にするのを手伝ってくれる人はいますか?

次のコードを使用します。

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(280.0,36.0);
}

私はこの表示を持っています:

ここに画像の説明を入力

明らかに、「Nous sommes」というセルを表示するには、2 行目が非表示になっているため、より高いスペースが必要です。これは 5 行目なので、次のコードを使用します (問題の解決を期待しています)。

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout*)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(280.0,indexPath.row!=4?36.0:72.0);
}

しかし、結果は次のとおりです。

ここに画像の説明を入力

より大きな高さのサイズを返すと、セルを使用せずに (垂直方向に) スペースを確保しながら、セルが水平方向 (これは望ましくありません) に拡張されます。私は何かが欠けています。できれば説明してください。

4

1 に答える 1

0

青い四角形はセルのサブビューであると想定しています (最初の例ではセル幅 280 よりも小さいため)。問題は、セルのサイズが変更されたときにサブビューのサイズが変更されるように、ストラットとスプリング (または自動レイアウトを使用している場合は制約) を設定する必要がある可能性があります。あなたのレイアウトを見ると、固定幅と柔軟な高さ(または自動レイアウトに相当するもの)を指定したいと思います。

それでも問題が解決しない場合は、ストラットとスプリング (または自動レイアウトの制約) に関する詳細を投稿してください。

于 2013-08-16T21:52:21.647 に答える