2017-11-18 4 views
0

Ich habe eine Containeransicht, die einen anderen Ansichtscontroller in viewDidLoad einbettet. Wenn ich die Ansicht des eingebetteten Ansichtscontrollers ausgeblendet habe, bleibt die Containeransicht auf dem Bildschirm bestehen. Die Ansicht des Embedded Controllers hat eine Greater or Equal Höhenbeschränkung, die ich auf 0 setze, wenn ich die Ansicht verberge.Größe der Containeransicht ändert sich nicht, wenn sich die Ansichtshöhenbeschränkung des Embedded Controllers ändert

Wie kann ich die Containeransicht verbergen, wenn ich die Ansicht des eingebetteten Controllers ausgeblendet habe?

EDIT:

Ich erkannte, dass meine Frage irreführend ist .. Ich gründe die Höhe Einschränkung der Sicht des Embedded-Controller auf 0 und ich erwarte seine Behälterhöhe, dass eine falsche Annahme zu 0. Ist zu verringern?

Es funktioniert, wenn ich die Relation der Höhenbeschränkung auf Equal eingestellt habe, funktioniert es nicht mehr, wenn ich die Beziehung zu Greater Than or Equal ändere.

Ansicht Embedded Controller Hierarchie Embedded controller's view hierarchy

Hier ist, was die View-Controller mit dem Behälter Blick aussieht -

View controller with the container view

Ich möchte innerhalb eingebettet, um die Höhe Einschränkung der Ansicht der Lage sein, zu ändern Container-Ansicht und die Containeransicht mit der neuen Höhe übereinstimmen (0 oder 44, je nachdem, ob ich die Ansicht für den Benutzer anzeigen möchte. Ich treffe diese Entscheidung in viewWillAppear innerhalb derdes integrierten ControllersDatei). Diese

ist, was ich will, um zu sehen, wenn ich die Höhe Beschränkung auf 0 gesetzt -

Goal

Der Grund, warum ich die Greater Than or Equal Beziehung für die Höhenbeschränkung verwenden möchten, ist auf Zugänglichkeit. Ich möchte, dass die eingebettete Ansicht größer wird, wenn der Benutzer die Schriftgröße erhöht.

+0

Eigentlich ist es normal, dass Superview (Container, Eltern) nicht ausgeblendet wird, wenn einige seiner Unteransicht (eingebettet, Kind) ausgeblendet wurde. – kirander

+1

Wenn Sie Eltern ausblenden möchten, können Sie self.superview.hidden = YES aufrufen; – kirander

+0

@nambatee was willst du erreichen? – Vyacheslav

Antwort

0

Sie zeigen Ihren Code nicht, daher ist es schwierig zu sehen, was schief läuft. Im Allgemeinen gibt es ein paar Möglichkeiten, Ihre Containeransicht zu verbergen:

  1. Geben Sie eine entartete Höhenbeschränkung. Es sieht so aus, als ob du das machst. Rufen Sie layoutIfNeeded an, um die Neuberechnung des Frames zu erzwingen?
  2. stellen Sie die isHidden Eigenschaft des Containers auf true
  3. der Backgroundcolor des Containers gesetzt

Nummer 3 ist die am einfachsten .Clear.

Verwandte Themen