Xcode Storyboard Layout nicht korrekt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Xcode Storyboard Layout nicht korrekt

    Guten Morgen beisammen,
    es ist eigentlich sehr unhöflich ein Forum gleich mit einer Frage zu belästigen - aber ich denke mal die meisten User machen das wohl früher oder später.

    Ich versuche mal das Problem zu beschreiben, es ist recht leicht reproduzierbar, daher vermute ich, dass ich irgendetwas grundsätzliches falsch mache (oder etwas übersehe). Ich benutze Xcode 4.5.1 unter MacOS X 10.8.2.

    Wenn ich eine neue iOS Anwendung erstelle, wähle dann das Tabbed-Template (universal) und lösche in der Second View alle enthaltenen Items. Dann erstelle ich ein Label und drei Buttons (durchnummeriert). Lasse ich das im Simulator laufen, sieht alles gut aus. Wenn ich dann die Position von Button 2 und 3 ändere, dann sieht es zwar im Storyboard sehr gut aus, aber der Simulator stellt es komplett anders dar.

    Kennt jemand von Euch das Problem? Was kann ich das machen? Was mache ich falsch?

    Wäre wirklich toll, wenn ihr da einen Tipp für mich habt.

    Vielen Dank!

    Hier noch ein Screenshot von dem Verhalten:
    [Blockierte Grafik: http://www.abload.de/thumb/xcodestoryboardproblehmy76.png]
  • Liegt wohl daran, dass Dein Layout im SB für iPhone 5 ist und Du im Simulator die App auf einem iPhone 4 testest. Da sind dann wohl die Contraints der Buttons für das Autolayout falsch eingestellt.

    Ich halte es für sinnvoller das Layout für iPhone 4 zu erstellen und dann die Constraints für die Buttons so einzustellen, dass es auch auf dem iPhone 5 vernünftig aussieht.

    Allerdings muss ich bei Vorschlägen zu den Constraints Einstellung zum Autolayout passen. Da hat Apple etwas geschaffen, was wohl auch bei Apple kaum jemand wirklich versteht. Die Doku zum Autolayout ist ein Witz und die Darstellung, Bedienung und Einstellung im IB ist eher verwirrend als intuitiv und verständlich.
  • Allerdings muss ich bei Vorschlägen zu den Constraints Einstellung zum Autolayout passen. Da hat Apple etwas geschaffen, was wohl auch bei Apple kaum jemand wirklich versteht. Die Doku zum Autolayout ist ein Witz und die Darstellung, Bedienung und Einstellung im IB ist eher verwirrend als intuitiv und verständlich.


    Aus der Seele gesprochen :thumbup:

    Liebe Grüße
    Karin
  • MCDan schrieb:

    Liegt wohl daran, dass Dein Layout im SB für iPhone 5 ist und Du im Simulator die App auf einem iPhone 4 testest. Da sind dann wohl die Contraints der Buttons für das Autolayout falsch eingestellt.

    Ich halte es für sinnvoller das Layout für iPhone 4 zu erstellen und dann die Constraints für die Buttons so einzustellen, dass es auch auf dem iPhone 5 vernünftig aussieht.
    Moin Moin,
    vielen Dank für die schnelle Hilfe! Kannst Du mir erklären, wie ich das Layout für ein iPhone 4 erstellen kann? Ich habe keine Settings dazu gefunden.

    Edit:
    Oder meinst Du, dass Autolayout zu deaktivieren?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von JanusX ()

  • Hallo MCDan,
    so, gerade mal in der Mittagspause ausprobiert: leider keine Änderung. Ich habe es sowohl auf "Retina 3,5 Full Screen", "Retina 4 Full Screen", "Freeform" und "Inferred" (hier stand es vorher) gestellt und der Fehler bleibt.

    Hast Du noch eine Idee?
  • Nein, verstehe ich auch ehrlich gesagt nicht. Wenn Du das Layout z.B. mit der Einstellung "Retina 3,5 Full Screen" erstellst und im Simulator mit iPhone 4 als Device testest, dann sollte die App eigentlich 1:1 dem Layout entsprechen.

    Mach doch bitte noch mal 1 Screenshot mit Layout im IB und der App im Simulator und poste diesen dann hier.
  • Autolayout Problem?

    Hi,

    der Abbildung zur Folge fehlt der Autolayout Engine dort ein Abstand zwischen dem 2. und 3. Button. Also einfach beide Buttons auswählen und das entsprechende Constraint einfügen (unten Rechts der mittlere Button öffnet das "Autolayout Menü")

    - Snoxxi
  • Sooo, ich habe es hinbekommen, aber woran es nun wirklich lag: ehrlich gesagt keine Ahnung.

    Folgendes habe ich gemacht: mein 13" MBP mal an meinen 24" Monitor angeschlossen (ich dachte da kann ich dann besser mit den verschiedenen Auflösungen herumspielen). Da habe ich im Storyboard das selbe Verhalten der Buttons gesehen (wurde mir vorher nicht angezeigt). Ich habe dann also die Buttons in dieser Darstellung angefasst und neu positioniert: voila! Es funktioniert.

    Ich weiß, hätte ich es nicht gesehen, würde ich es ebenfalls nicht glauben...

    Habt ihr so etwas schonmal gesehen?
  • Es ist eigentlich ganz klar was da passiert ist

    Wenn Du dir nochmals deinen Screenshot ansiehst, dann erkennst Du darin die blauen Linien welche die Constraints des Autolayout Systems repräsentieren. Da aktuell der Button 2 selektiert ist werden auch die für diesen Button aktiven Constrainst angezeigt. Da haben wir

    1. Ein Center X Alignment (die blaue Linie von Oben nach Unten)
    2. Equal Widths Constrainst (die blauen Linien am rechten und linken Rand der Buttons)
    3. Ein fester Abstand von der Unterkante des Superviews zur Unterkante des Buttons.

    Hättest Du jetzt Button 3 selektiert, so wären dort zwar die Constraints 1 und 2 auch vorhanden gewesen. Aber anstelle des festen Abstandes zur Unterkante des Superviews wäre entweder ein fester Abstand zur Oberkante des Superviews oder ein fester Abstand zum Button 1 vorhanden gewesen.

    Wenn Du jetzt weiter schaust, dann erkennst Du, dass der Superview im Layout Höher ist als im Simulator. Das Ergebnis ist dann genau das was Du im Simulator siehst, der Button 2 liegt zwar im Verhältnis zum Button 3 weiter oben, aber von der Unterkante des Superviews immer noch genauso weit entfernt wie im Layout.

    Durch das Verschieben der Buttons hast Du letztlich den IB dazu gebracht die Layouts anzupassen wenn Du Glück hast, dann war der Automatismus des Ins sogar so gut, dass es für alle Geräte halbwegs passt.