2017-11-27 14 views
0

UICollectionViewCellのサイズを変更してイメージのサイズを適切に変更し、寸法/アスペクト比を維持するようにしたいと思います。私が単に画像のサイズにセルのサイズを設定すると、大きすぎるかもしれません。また、私は別のサイズのデバイス上で実行する場合、間隔は一貫していません。これを克服するには、collectionViewをプログラムで実装する必要がありますか?イメージに合わせてUICollectionViewCellのサイズを変更する

私はこれを行う多くのアプリを見るので、フレームワークとして既に解決されている非常に一般的な問題です。

例:

enter image description here

答えて

0

UICollectionViewが実際に任意のレイアウトです。つまり、デフォルトはグリッドであるUICollectionViewFlowLayoutですが、UICollectionViewLayoutプロトコルの独自のインスタンスを実装することで何かに変更することができます。あなたが非常に簡単に引用した場合のInt。セルの幅は、コレクションビュー(幅からパディングを引いたもの)を2で割ったものです。高さは、アスペクト比×幅+間隔+ラベルの高さです。 2で割り切れる指標を持つすべてのセルは右の列に入り、残りは左の列に入ります。 layoutAttributesForItem(at:)のこれらの値は簡単に計算できます。残念ながら、collectionViewContentSizeを計算するのは少し難しいです。あなたのcollectionviewが十分に小さいと仮定して、私はhieghtsをすべてあらかじめ計算し、これらの関数にキャッシュされた値を使用するのが最善だと思います。

0

githubには多くのオープンソースがありますが参照できます。

https://github.com/zhangsuya/SYStickHeaderWaterFall

+0

ようこそスタックオーバーフロー。ツアーに参加してください(https://stackoverflow.com/tour)。 – Xcoder

+0

@Xcoderなぜそれを言うのですか?私はあなたよりも長いメンバーをしてきました。 –

+0

@AnonProgrammerは、あなたが落ち着かないように伝えていません。彼は、コメントでなければならない答えとしてURLを投稿したばかりの にあると言っています! –

関連する問題