私はUICollectionViewCellのサブクラスを実装しようとしています。サブビュープロパティを変更する代わりに、UICollectionView内のサブビューを置き換えます。
私はカスタムビューの配列を取得していますが、views
という配列を使用して、あるオブジェクトから別のオブジェクトにviews
を渡します。それらはタイプCustomView
です。
UICollectionViewCellサブクラスにはview
というタイプのCustomView
という1つのプロパティがあります。 CellForItemAt...
で
、私はこのようなCustomViews
の配列からセルのview
プロパティを設定しようとしている:
let customView = array[indexPath.row]
cell.view = customView
私はこれを行う際しかし、細胞が正しく表示されません。それらは空で、画面上には灰色の形があります。
しかし、セルのCustomView
サブビューのプロパティを明示的に設定すると、どのようにしたいのかがわかります。
セルにレイアウトパスを行う方法はありますか?または、あらかじめ設定されたビューを渡すのではなく、UICollectionViewCellsでプロパティを明示的に設定するだけですか?
コードは独自のものですので、私は不可解でなければならないが、私は
編集を明確にすることができますなら、私に知らせてください。詳しい説明のために受け入れ答えのコメントを参照してくださいしてください
cell.viewを設定したら、customViewをcell.contentViewのサブビューとして追加しますか? – Ryan
customCellのinitでは、customViewをサブビューとして追加し、すべての側でcontentViewを満たすように制約します。 – ArielSD
しかし、セルの初期化の後、 'cell.view = customView'です。初期化のcell.viewと 'cell.view = customView'の後のcell.viewは異なります。新しいビューをサブビューとして追加し、自動レイアウト制約をリセットする必要があります。 – Ryan