2017-07-02 2 views
0

私はUILabelUITableViewを縦UIStackViewの中に持っています。このスタックビューは、要素がテーブルビューに追加されている場合でも、常に中央に置かれるようにしたい。UITableViewをUIStackView内のXとYを中心にして維持する方法

は今、私は、スタックビューにHorizontal in ContainerVertical in Container制約を追加しました。しかし、それでもスタックビューにはY制約がないと言われています。もし私が1つ追加すれば、それはもはや中心に置かれません。

私はそれを維持するために追加すべきか制約すべてのアイデアは、常に中心に?

enter image description here

enter image description here

私はスタックビューから縦方向のスペース制約を追加しました第二画像:ここで

は、私は私のスタックビューと私が今持っているものと一つにする方法との2つのスクリーンショットがありますタイトルにそれがそのように見える理由です。

+0

のためになるスーパーマージンから維持しています。スタックビューで覚えておくべきことの1つは、100%見た目にすることはめったにありません。あなたはIMOハード制約を持つスタックの景色をより容易が、はるかに制御 – froggomad

答えて

2

うーん...私はいくつかの時間前に、クライアントからのこの非常に同じ要求を持っていた事は、そのテーブルビューがそのように使用することを意味するものではない。なぜなら、あなたはテーブルの両方で成長しようとしている、あまりにも多くの項目を追加する場合垂直方向とそれはまったくうまくいかない...しかし!私の見る限り、あなたのセルはすべて同じサイズですので、これは私のテーブルがいくつかの有限の行数を持ち、それらのすべてが同じサイズであったからです。

高さ制約を追加しましたtableViewに渡し、それが所属するクラスにIBOutletとしてスローします。タスクの行数を取得したら、セルの固定高さの行数を掛けてtableView高さ制約の定数値を更新するだけです。そうすれば、tableViewの高さは、その行に含まれる行数で定義されます。おそらくスタックビューをダンプするだけで、tableViewを単独で使用し、テーブルビューにテーブルビューに制約を追加する必要があります。具体的には:

好きなように先行/後続または幅、実行時に変更する高さの制約を設定します。私はそれを探していますところで

0

は、あなたのstackviewが画面全体を占有している、私はあなたが垂直にコンテナ、コンテナの下のスペース、トップのスペースに、後続の容器につながる通常の制約に行く必要があります感じています。

これらの4つの制約を追加すると、これらの4つの制約の設定によって常にスタックビューが保証されるため、スタックビューは常にどのデバイスで実行されていても常に水平方向と垂直方向の中央に表示されますその一定の距離は、あなたのケースで0あなたはおそらく、あなたが後にしているものを手に入れるために、スタックビューの向きや間隔の設定をいじる必要がありますすべての制約

+0

を取得し、私はボタンにタイトルと一番下の制約に、大手末尾のトップ制約を追加しましたが、内容の全ては、上部の真ん中ではありません。私のスタックビューの配置と分布は塗りつぶしに設定されています。 – Kobe

+0

均等に記入し、カスタムの間隔 –

+0

を調整するためにそれらを設定します。しかし、私はそれを行う場合には、ラベルテーブルビューと同じサイズを作成しようとするため、ラベルとテーブルビューの間のギャップは、右、大きすぎますか? – Kobe

関連する問題