1

私は UICollectionView を持っており、常にディスプレイの高さの半分、時には幅の半分、時には幅の 1/4 のセルを持ちたいと思っています。下の図では、UICollectionView が表示しているものを描画しました。ランドスケープでは、1/4 幅のセル、次に半分のセル、さらに 1/4 のセルを表示するように指示しており、それが再び繰り返されます。理論上は画面上に 6 個のセルがあるはずですが、セルがすべて散らばってしまいます。何が間違っているのかわかりません。すべてのセルのサイズが 1 つである場合は問題なく動作しますが、サイズが異なるだけでこれが発生します。

これが起こることです:http://i.imgur.com/5Ifac.jpg

これが私がしたいことです:http://i.imgur.com/eAX0g.jpg

レイアウトを設定し、個々のセル サイズを変更するコードは次のとおりです。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if ([bigCells containsObject: indexPath.row]) {
        return CGSizeMake((CollectionView.frame.size.width/2), (CollectionView.frame.size.height/2));
    } else {
        return CGSizeMake((CollectionView.frame.size.width/4), (CollectionView.frame.size.height/2));
    }
}

- (void)prepareLayout {
    self.itemSize = CGSizeMake((self.collectionView.frame.size.width/2), (self.collectionView.frame.size.height/2));

    self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    self.minimumInteritemSpacing = 0;
    self.minimumLineSpacing = 0;
}
4

0 に答える 0