Wie beurteilen Sie die zur Verfügung stehenden Grenzen innerhalb eines UITabBarController bekommen

StackOverflow https://stackoverflow.com/questions/600561

  •  03-07-2019
  •  | 
  •  

Frage

Wenn Sie eine UITabBarController verwenden, wie bekommt man die Größe der Tab-Leiste am unteren Rand? Und wie Sie wissen, wie viel Platz Sie in der Registerkarten-Ansicht für Ihre Inhalte haben? Ich sehe viele Beispiele von Menschen, ihre Reiter Kind Ansichten Sizing auf [[UIScreen mainscreen] Applicationframe], was nicht richtig sein kann, weil die Tab-Leiste etwas Platz am unteren Rand des Bildschirms einnimmt.

Auch ist es möglich, die Größe der Tab-Leiste zu ändern?

Danke Ryan

War es hilfreich?

Lösung

Der Grund, warum Sie Applicationframe verwenden können, ist, dass UITabBarController seine Subcontrollern Ansichten ändert die Größe, so lange, wie Ihrer Ansicht nach richtig unterstützt Ändern der Größe, es wird alles funktionieren.

Sie können die Größe der Tab-Leiste erhalten, indem die Tab-Leiste Controller tabBar Eigenschaft Zugriff auf und an seinem Rahmen suchen. Die Gesamtgröße der Tab-Leiste und den Bereich für die Ansicht kann durch einen Blick auf die Tab-Leiste Controller Ansicht Eigenschaft Rahmen gefunden werden, so dass ein wenig Subtraktion erhalten Sie die Nummer Sie suchen:

CGFloat myViewHeight = tabBarController.view  .size.height
                     - tabBarController.tabBar.size.height;

Andere Tipps

Alte Frage, aber trotzdem:

Wenn Sie von einem NIB laden Sie Ihre Ansicht nicht, stellen Sie die Auto-Fahnen in Ihrer Loadview Func Ändern der Größe; so etwas wie folgt aus:

self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight |
                             UIViewAutoresizingFlexibleWidth;

Wenn Sie dies tun, können Sie [[UIScreen mainscreen] Application] Ihre Ansicht des Rahmens zu spezifizieren; es automatisch angepasst wird, wenn eine Tab-Leiste vorhanden ist.

Wenn Sie eine NIB für Ihre Ansicht haben, wird die autoresizingMask automatisch von Interface Builder gesetzt.

Markus

Wenn Sie herausfinden können, wie eine UITabBar, um die Größe, dann können Sie eine UITabBarController des UITabBar ändern. Sie können das Objekt zugreifen, indem

[[UITabBarController subviews] objectAtIndex:0]

Aber es ist in der Dokumentation empfohlen, dass Sie nicht direkt auf das Objekt zugreifen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top