2017-11-18 15 views
0

別のビューコントローラを埋め込むコンテナビューがviewDidLoadにあります。埋め込みビューコントローラのビューを非表示にすると、コンテナビューは画面上に残ります。エンベデッドコントローラのビューにはGreater or Equalの高さの制約があり、ビューを非表示にすると0に設定されます。コンテナビューのサイズが、エンベデッドコントローラのビューの高さの制約が変更されたときに変更されない

エンベッデッドコントローラの表示を非表示にすると、コンテナ表示を非表示にするにはどうすればよいですか?

EDIT:

私は私の質問が..私は0に組み込みコントローラのビューの高さ制約を設定していると私は0に減少し、そのコンテナの高さを期待してい誤解されていることを認識は間違って仮定ことですか?

高さ制約の関係をEqualに設定すると機能しますが、関係をGreater Than or Equalに変更すると機能しなくなります。

組み込みコントローラのビュー階層 ここEmbedded controller's view hierarchy

はコンテナビューとビューコントローラは次のようになります -

View controller with the container view

が、私は内部の埋め込みビューの高さ制約を変更することができるようにしたいですコンテナビューを開き、コンテナビューを新しい高さに合わせます(ユーザーにビューを表示するかどうかに応じて、0または44)。その決定は、埋め込みコントローラの内のviewWillAppearですファイル)。

Goal

私は高さの制約のためにGreater Than or Equal関係を利用したい理由は、アクセシビリティが原因である -

これは私が0に高さ制約を設定するときに表示したいものです。ユーザーがフォントサイズを大きくすると、埋め込みビューのサイズが大きくなりたい。

+0

実際、スーパービュー(コンテナ、親)は、そのサブビュー(埋め込み、子)が非表示に設定されていると非表示にならないのが普通です。 – kirander

+1

親を非表示にしたい場合は、self.superview.hidden = YESを呼び出すことができます。 – kirander

+0

@nambatee何を達成したいですか? – Vyacheslav

答えて

0

コードを表示していないため、何が間違っているのか分かりにくいです。一般に、コンテナビューを非表示にするにはいくつかの方法があります:

  1. 縮退の高さの制約を付けます。あなたがこれをしているように見えます。 のレイアウトが必要な場合はにフレームの再呼び出しを強制しますか?
  2. は真
  3. にコンテナのisHiddenプロパティを設定し

数3を.clearするコンテナののbackgroundColorを設定するのが最も簡単です。

関連する問題