2017-10-09 18 views
0

UICollectionViewセルの高さは固定されていますが、幅は動的で、UICollectionViewのセルは楕円形にする必要があります。 UICollectionViewを使用して独自に作成する必要があるサードパーティオプション。ご案内ください。以下はUICollectionViewCell動的な幅と固定された高さ

enter image description here

私が達成しようとしていますどのようなイメージがあります。私は、サードパーティを探すべきか、UICollectionViewを使って独自のものを作るべきかを知りたい。私は完了するのに少し時間があるので、それに続く方向を自分自身で開始することを求めて検索する時間を避けるのがその理由です。指導してください。

+1

sizeforitemメソッドを使用する必要があり、UIcollectionFlowlayoutdelegateを含める必要があるように、幅のサイズを設定できるので、文字列の幅を取得できます –

+0

このレポを見てくださいhttps://github.com/riteshhgupta/ TagCellLayout –

+0

@BhupatBhedaこれは便利だと思われますが、私は速い4に取り組んでいます、それは1年のコミットを持っているので、それをサポートしていないかもしれません。 –

答えて

1

これを実現するには、UICollectionViewFlowLayoutと自動レイアウトを使用できます。

  1. コンテナビューでUICollectionViewCellを作成します。
  2. ピンこの容器は、自動レイアウト
  3. とセルのエッジを表示するこのコンテナビューにUILabelを追加し、コンテナビューの全てのエッジにピン(それにセルの背景と区別するために背景色を与える)
  4. UICollectionViewCellサブクラスでは、コンテナビューの角を丸めたいと思うでしょう。覚えておくべきUICollectionViewFlowLayoutDelegate方法でself.containerView.layer.cornerRadius = self.containerView.height/2
  5. 、estimatedSizeForItemは、セルのおおよそのサイズを返します(自動レイアウトは実際のサイズを計算します。)

重要なことは、あなたのセルが自動ように、十分な制約を持っている必要がありますレイアウトエンジンはコンテンツに基づいて実際の高さと幅を計算することができます。

編集:固定された高さが必要な場合は、ラベルには1行しか指定できません。または、高さ制約を追加します。

+0

実際にオペアンプは動的な高さではなく動的な幅を求めています! – Lion

+0

そして、なぜこのソリューションは動的な幅で動作しないのですか?私はあまりあいまいではないように編集しましたが、解決策は同じです。 – Tim

+0

あなたはautolayoutが実際の高さを計算できると書いていました!それが私が指摘した理由です!今あなたの編集された答えは大丈夫です! – Lion

0

最後に、多くのカスタマイズと迅速なサポートを備えたココアポードを介してインストールできるライブラリTagListViewが見つかりました。

関連する問題