ios- Autolayout: Fügt dem Navigationselement eine Einschränkung hinzu

8

Ich habe gerade angefangen, meine Anwendung auf das automatische Layout zu verschieben. Ich möchte einem Label '0' Pixel unterhalb der Navigationsleiste Beschränkungen auferlegen. Ich habe es versucht, aber keine Lösung gefunden. Hier sind Screenshots.

Im Storyboard habe ich Constraint von superview gegeben.

In IOS7 funktioniert es gut.

Aber in IOS6 geht es unterhalb der Navigationsleiste um 64 Pixel, da Superview unterhalb der Navigationsleiste beginnt.

Wenn ich die obere Einschränkung für die Beschriftung unterhalb der Navigationsleiste hinzufügen könnte, wird das Problem gelöst. Aber ich kann nicht finden, wie man es macht. Ich habe einige Fragen durchsucht. aber dint bekam die Antwort.

Bitte helfen Sie.

    
Durgaprasad 29.04.2014, 13:59
quelle

2 Antworten

9

Update für iOS 11:

iOS 11 führt das Konzept der sicheren Bereiche ein, und die Last des Containers, des gesamten Inhalts in einem sichtbaren Bereich, liegt wiederum in den Händen des Views, anstatt eines Tangos aus View und Controller.

Siehe Apples Dokumentation hier .

Wenn Sie mit Storyboards oder XIBs arbeiten, können Sie die Funktion in Xcode einfach aktivieren. Dies ist abwärtskompatibel und sollte unter iOS 10 und darunter wie erwartet funktionieren. Im Code würden Sie if (@available(iOS 11.0, *)) verwenden, um zu entscheiden, ob Einschränkungen für die Safe Area Guide / Anchors gesetzt werden oder die Legacy-Guides auf älteren Systemen verwendet werden sollen.

Wenn Sie Storyboards verwenden, müssen Sie dem Top-Layout-Handbuch eine Einschränkung hinzufügen. Dies wird sich um Ihre Probleme kümmern, denn auf iOS6, das ist 0pt und auf iOS7, ist es dynamisch. Wenn Sie eine nib / xib-Datei verwenden, wird es etwas komplizierter; Sie müssen die Einschränkung im Code hinzufügen. Der einfachste Weg, dies zu erreichen, besteht darin, eine Einschränkung mit 0 vertikalen Abstand zu erstellen, einen Auslass zu dieser Einschränkung im Code zu erstellen und in viewDidLayoutSubviews die constant des Constraint-Auslasses auf den Wert von self.topLayoutGuide.length zu aktualisieren.

    
Leo Natan 29.04.2014, 16:24
quelle
0

Sie müssen lediglich einige Änderungen an Ihren Einschränkungen vornehmen:

1) Geben Sie Ihrem Label height constraint

2) Hängen Sie Ihr Label an die führende Ansicht an - Horizontale Platzbeschränkung

3) Fügen Sie eine Vertikale Platzbeschränkung

hinzu

Der dritte Schritt muss vorsichtig sein [Ich füge ein Bild als Referenz an.]

Überprüfen Sie danach, ob die roten Pfeilmarkierungen weiterhin auf Ihrem View Controller vorhanden sind.

    
Sreejith 29.04.2014 16:16
quelle

Tags und Links