2013-09-24 10 views
9

Ich mache eine App mit TabBarController und AutoLayout.Labels von TabBar mit Autolayout abgedeckt

Immer wenn ich die App entweder auf Simulator oder auf dem Gerät kompiliere, werden die unteren Beschriftungen, Schaltflächen und andere Ansichten von TabBar abgedeckt. Die views haben Einschränkungen, so dass sie oben und unten bleiben würden und eine View (d. H. MapView) würde dehnen.

Der Fall, dass die Ansichten unter der TabBar untergehen würden passiert nur in iOS 7, aber nicht in iOS 6.1 und niedriger. Irgendwelche Ideen oder ist es nur ein Fehler im Compiler?

+0

Ich habe ähnliches Problem mit meiner app, also musste ich automatisches Layout deaktivieren und zu tun Frames manuell :(Ich denke, vielleicht hat es etwas zu tun , mit einem Projekt, das in xcode4.x erstellt wurde, wo es alte Registerkarten, Navigationsleisten usw. hatte. – Yanchi

+0

Ich habe versucht, die gleiche Ansicht in Xcode5 von Grund auf neu zu machen, aber es führte zu dem gleichen Problem. Das Problem ist nur auf iOS 7 (3.5 "und 4"), aber nicht in iOS6 (3.5 "und 4"). –

+0

und haben Sie automatisches Layout aktiviert? Versuchen Sie es zu deaktivieren und sehen, ob es funktioniert. – Yanchi

Antwort

1

Ich glaube, ich eine Lösung gefunden (obwohl es nicht, was automatisches Layout ist sein soll):

Ich habe die Einschränkung mit dem | - + - | am unteren Rand des Storyboard-Fensters. Im großen Kreuz habe ich die untere Einschränkung mit einer festen Länge zu view anstelle von bottom layout guide hinzugefügt und die aktuelle Entfernung verwendet (in meinem Fall 57).

Auf diese Weise bleiben die Buttons und scrollViews bei TabBar und verschwinden nicht mehr.

+0

Ich habe auch dieses Problem. Hast du den Fehler an Apple gemeldet? –

+0

Ich habe einen Fehlerbericht an Apple gesendet –

+5

Eigentlich habe ich mein Problem behoben, indem ich dieses Handbuch gelesen habe: https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/AppearanceCustomization.html - Ich hatte Extend Edges > Einstellung unter untere Balken in Interface Builder aktiviert. Das Deaktivieren dieser Einstellung hat Dinge für mich behoben! –

6

Die richtige Antwort besteht darin, Edges entweder programmgesteuert oder über den rechten Bereich eines Ansichtscontrollers rückgängig zu machen. Klicken Sie auf Ihren View-Controller und deaktivieren Sie „Unter unteren Balken“:

image