24

コレクション ビューで新しいセルを作成するボタンである UICollectionView があります。そして、コンテンツのサイズに応じて UICollectionView のサイズを調整する必要があります (セルが 1 つまたは 2 つある場合は UICollectionView が短く、セルが多い場合は UICollectionView が十分に大きい)。

コンテンツサイズを取得する方法を知っています:

collectionView.collectionViewLayout.collectionViewContentSize

しかし、この値をどこで使用するかわかりません。UICollectionView の高さを自動調整する方法を誰かが教えてくれれば幸いです。

UPD: 問題を説明するデモ プロジェクトを GitHub で公開しました: https://github.com/avokin/PostViewer

4

4 に答える 4

6

コンテンツのサイズはあなたが求めているものではないと思います。コレクション ビューによって消費される画面領域の量を調整したいと思いますよね? フレームの調整が必要になります。コンテンツのサイズには、画面外 (スクロール) 領域と画面上のビューが含まれます。

その場でフレームサイズを変更することを妨げるものは何も知りません:

collectionView.frame = CGRectMake (x,y,w,h);
[collectionView reloadData];

私があなたを正しく理解しているなら。

于 2013-06-09T20:06:47.160 に答える
6

コレクション ビューに高さの制約を使用し、必要に応じてその値をコンテンツの高さで更新します。この回答を参照してください: https://stackoverflow.com/a/20829728/3414722

于 2014-07-04T13:23:24.650 に答える
0

UICollectionView フレームを変更する手順:

  1. コレクション ビューのスーパービューの "translatesAutoresizingMaskIntoConstraints" プロパティを YES に設定します (AUTOLAYOUT を使用している場合)。

  2. 次に、collectioview のフレームを次のように更新します。

    collectionView.frame = CGRectMake (x,y,w,h);
    [collectionView reloadData];
    
于 2016-04-25T10:02:19.360 に答える