web-dev-qa-db-ja.com

Xcode 7のUIStackViewとUICollectionViewの違いは何ですか?

UIHorizontalStackViewとコレクションビュー(垂直スタックビュー)の違いは何ですか?

collectionViewを水平および垂直にすることはできませんか?なぜ人々は両方を使うのでしょうか?

UIStackViewは、コレクションビューではできないことを何をしますか?

11
nachshon f
  1. UICollectionViewはグリッドのようなもので、UIStackViewは垂直または水平の1次元専用です。

UICollectionViewはUITableViewに似ていますが、単一列のレイアウト以上のものをサポートします。

コレクションビューは、コレクションビューが単一列のレイアウト以上のものをサポートできることを除いて、テーブルビューと同じ一般的な機能を提供します。コレクションビューは、複数列のグリッド、タイルレイアウト、円形レイアウトなどを実装するために使用できるカスタマイズ可能なレイアウトをサポートします。必要に応じて、コレクションビューのレイアウトを動的に変更することもできます。

vs

UIStackViewクラスは、ビューのコレクションを列または行のいずれかにレイアウトするための合理化されたインターフェイスを提供します

  1. 私にとって、StackViewを使用すると、「自動レイアウト」機能を利用できます。たとえば、スタックに4つのビューを配置すると、このコンポーネントは、サイズに応じて、それらのビューを画面に表示する方法を決定します。
11
Duyen-Hoa

はい、フローレイアウトまたはカスタムレイアウトを使用するコレクションビューは、垂直または水平にすることができます。フローレイアウトを使用する場合、すべて固有のコンテンツサイズに設定されているアイテムの単一の列を構成するのは非常に簡単です。

スタックビューは基本的に、そのトリムと特殊バージョンです。コレクションレイアウトの柔軟性が失われ、その見返りとして、合理化されたインターフェイスが提供されます。

ユースケースによっては、コレクションビューの複雑さを必要としない場合があります。表示するオプションのリストがあるが、すべての場合に適切ではない場合など、いくつかの素敵な小さな機能もあります。そうでないものを非表示にすると、スタックビューで処理されます。コレクションビューでアイテムを非表示にするには、かなり多くの構成が必要です。

スタックビューは、完全にInterface Builder内で作成され、コードを必要としないコンテナビューの非常に軽量なオプションも形成します。このように、スタックビューは、レイアウトをフローするために管理するサブビューの固有のコンテンツサイズを使用することにより、多くの自動レイアウト制約を置き換えています。スタックビューを非常に効果的にネストして、ほとんどの表形式のレイアウトを形成することもできます。

16
Wain

コレクションビューにはセルがあり、データ表示を処理します。スタックビューは、コンテナ内でビューをレイアウトする方法です。スタックビューには、コレクションビューがデリゲートで行うように、データを操作する方法がありません。コレクションビューはデータ中心であり、スタックビューはレイアウト中心です。

14
ejkujan

コレクションビューははるかに複雑なUI要素であり、DataSourceオブジェクトやレイアウトなどが必要です。

スタックビューは、ボタンのスタックを実行したり、フォームのラベルやテキストフィールドを配置したりするために、複数の要素に複数の制約を適用する必要があるトリックの代わりのようです。

スタックビューにもデリゲートがなく、アイテムなどを選択するメカニズムもありません。

4
Brian Broom

この2つのオプションが存在する理由を自問する場合、これは非常によく似ています-カスタムセル(テーブルビューまたはコレクションビュー)を作成し、サブビューとして別のテーブルビューまたはコレクションビューを追加する場合があります-方法を知りたいと思うでしょうUIStackViewは機能します...

0
kurtanamo