2015-09-23 5 views
16

Vielleicht ist das Streben nach einem "warnenden" Projekt vergeblich, aber ich bin nervös genug über Adaptive Layout/AutoLayout, dass ich gezwungen bin, diese Warnungen zu quetschen.Frame "wird zur Laufzeit anders sein" ... Ist das nicht der springende Punkt?

Ich habe eine uiview, die ich dynamisch basierend auf der Bildschirmanzeige Breite werden soll. Ich habe meine App in den Build Info für Universal, nur Portrait (und umgekehrt) eingestellt. Ich habe die uiview folgende Möglichkeiten eingeschränkt:

  1. des Zentrums Ansicht Aligned zu Superview Zentrum X
  2. die proportional Ansicht Hergestellt Breite Der Superbreite
  3. die Ansicht Gave ein Seitenverhältnis constraint von 1: 1
  4. finden Sie in der Abbildung unten
  5. der Ansicht, eine vertikale Beschränkung nach oben

Einzelheiten des Super gegeben.

So bekomme ich jetzt die Warnungen über die "Frame zur Laufzeit" der Ansicht, insbesondere die Größe und Position zur Laufzeit gegenüber, was in der Leinwand ist. Ich bin mir nicht sicher, warum Xcode sich um die Arbeitsfläche "kümmert", auf der die Klassengrößen auf Beliebige Höhe und Beliebige Breite eingestellt sind. Ich dachte, der ganze Sinn des Adaptiven Layouts besteht darin, dass Größen und Positionen zur Laufzeit auf der Grundlage der Bildschirmgröße und -ausrichtung des Geräts aufgelöst werden.

Wenn ich zusammenbrechen und Xcode "Frames aktualisieren" lassen ... ja die Warnung geht weg, aber mit den super großen Ansichten ist es praktisch unmöglich, grafisch in der winzigen Leinwand in einer WYSIWIG-Mode zu arbeiten. Gibt es eine Lösung, um die Warnungen loszuwerden, ohne übergroße Ansichten zu erstellen, die das Arbeiten in der Arbeitsfläche nahezu unmöglich machen?

Canvas screenshot

Antwort

7

Sie können simuliert Metriken Größe zum Beispiel iPhone 4-Zoll ändern!

enter image description here

oder Freeform und dann die Größe ändern, was Ihnen am besten passt.

enter image description here

19

Um die Warnung loszuwerden, und lassen Sie die Zwänge stellen die Ansichten „richtig“, sondern nur die Ansicht auswählen, die die Warnung, drücken Sie auf das kleine Dreieck, was in der unteren rechten Ecke des Storyboards schenkt : wählen sie „Update Rahmen“ für „Alle Ansichten in Containern“ enter image description here

Und dann

(ich wünschte, es gäbe eine ganze Storyboard eine Möglichkeit, dies zu tun, zumindest habe ich es nicht gefunden.)

+1

Sorry, vielleicht war ich nicht klar. In meiner Frage hatte ich bereits festgestellt, dass ich Xcode Sachen mit "Update Frames" reparieren lassen konnte. Meine Frage war im Wesentlichen, wie man die begrenzten Canvas-Immobilien nutzte, nachdem man "Frames aktualisiert" hatte. Ich merke, dass vor meiner Frage ein bisschen Gejammer und Jammern war :) –

13

eine Ansicht auswählen und

  • Option + Befehl + =

Dies aktualisiert die Bildgröße drücken. Wiederholen Sie dies für alle beanstandeten Ansichten.Es dauert nicht lange, besonders wenn Sie sie finden, indem Sie auf die Fehlermeldungen klicken.

Dank this answer für die Idee.


Hinweise

Nach der Xcode Aktualisierung 8 und eine Darstellung als Gerät der Wahl, war ich immer diese Fehlermeldung. Das Menü ist anders als in Xcode 7. @ Spoeks Antwort funktionierte nicht mehr. Auch das Klicken auf Aktualisieren oder Zurücksetzen funktionierte nicht für mich.

enter image description here

aktualisieren

Update-Frames hat jetzt eine eigene Taste. Deshalb habe ich es vorher verpasst.

enter image description here

+0

@RaphaelP. Das Aktualisieren der Frames lässt es nur so aussehen, wie es auf einem laufenden Gerät aussehen würde. Das Aktualisieren von Frames sollte immer sicher sein. (Das heißt, es ändert Ihre Bedingungen nicht.) Das einzige Mal, dass ich ein Problem damit hatte, war, wenn ich meine Einschränkungen nicht richtig eingerichtet hatte, und das Aktualisieren der Frames machte es so, dass es schwer war, das zu finden Ansichten. – Suragch

Verwandte Themen