2017-11-01 16 views
0

これは私が知っている幅広い質問です。基本的にはこれを聞いています。私が手にしているタスクは、一度に複数の目的に合った汎用のtableViewCellを作成することです。そのセルのレイアウトは入力に応じて変更されます。まず、すべてのセルは、ヘッダー、テキスト本体、単一のイメージまたは複数のイメージ、データのコレクション(UITableViewCell内のUICollectionViewに表示されます)を持つことができなければなりません。考え方は、ユーザーがセクションを作成できるということです。これらのセクションはタイプではないので、この1つの汎用UITableViewCellから正しいセルを作成することです。一般的なUITableViewCell Swiftを作成する

例を挙げることができます。ユーザーは2つのセクションを作成します。1.Sectionユーザーはヘッダーと本文を作成します。 2.セクションを作成すると、本体と複数の画像が作成されます。セクション1の場合、セルはヘッダとボディで構成され、残りは無視されます。セクション2では、私はボディといくつかの画像を持っています。あなたはどうやってこの行動を作り出しますか?私は制約付きのストーリーボードを使用しようとしましたが、ヘッダを隠蔽しても、UIElementはまだ存在していますが、ヘッダー制約の下にあるボディは、ヘッダが存在しないセクション2の場合はUIElementにアタッチされます。代わりにセルの上部。これが広範であるか、またはアイデアが十分明確に視覚化されていない場合は、私に言い換えてください。

答えて

1

stackviewを見てみましょう。または、あなたがそれを使用したくない場合、私は簡単なトリックを行います。

優先順位500と底部をヘッダに字幕上部にも優先1.追加つの制約とトップ1つの制約を作成し、それが空の場合、ヘッダタイトルをチェック設定されているときはいつでもそして優先順位1と制約のための出口を作成します。その1.

そうでない場合は999への制約の優先順位を設定した場合1つの要素のためにそれを使用しても大丈夫ですが、複数の要素の場合には、stackviewを使用することをお勧めします。

+0

良い答え。私はこれを試して実装します。しかし、stackviewの場合、すべての要素をstoryboardのこのスタックビューに追加しますか?そうであれば、他の人が滞在している間にいくつかの要素を無視する方法にどう対処しますか? –

+0

要素をスタックビューから視覚的に削除するには、要素を非表示にするだけです。自動的に高さが0に設定されます。要素がパディングされている場合は注意してください。優先順位999でパディング制約を設定する必要があります。そうしないと、制約条件の警告が表示されます。 – Luzo

+0

こんにちは@ルーゾー私はついにそれを働かせた!!ありがとう、私はあなたの答えの広告を受け入れ、それを投票しました。他のみんなのために私はstackviewをお勧めしますし、私は、このチュートリアルに続いて、私は非常にお勧めすることができます:https://www.raywenderlich.com/160646/uistackview-tutorial-introducing-stack-views-2 –

0

とにかくユーザーソースを何とか定義していますか?だから、あなたのUIの振る舞いを完全に定義できる何らかのモデル構造体があるので、有効なフィールドの組み合わせとその提示方法を知っていれば、ここで何の問題も見当たりません。ええ、UIは簡単ではないかもしれませんが、それは100%定義されます

関連する問題