Xcode 6, Size Classes und AutoLayout

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

  • Xcode 6, Size Classes und AutoLayout

    Hi,
    ich erstelle gerade mein erstes Projekt mit den neuen Size Classes und bin am Verzweifeln. Die App ist eine Universal App und soll ab iOS 7 laufen. Für das iPhone Layout habe ich als Breite Compact und Höhe Any ausgewählt. Ist ja in der Beschreibung so vorgeschlagen. Nun habe ich meine Elemente positioniert und Constraints gesetzt. Nur leider auf den iPhone 5 z.B. passt nicht alles drauf. Da gehen die Elemente über den Screen weiter. Klar die Size Class ist breiter als das iPhone 5. Wir erstelle ich jetzt aber am besten Layouts dafür? Kann man sich da irgendwo belesen? Bei Xcode 5 und früher hatte ich die Breite und wusste was wohin muss. Das ist jetzt ja nicht mehr der Fall. Wie bekommt man mit den SIze Classes ein gutes Layout hin? Ich verzweifle bis jetzt. Und wenn ich Xcode 6 die Constraints setzten lasse, dann wird das auch nichts, da dann eine Warning kommt, dass das "First Baseline" Attribute nicht unter iOS 7 verfügbar ist. Warum setzt das Ding das dann?? Kann man das ausstellen? Früher ging das irgendwie besser. Wenn ich das jetzt an den Rändern fest mache werden die Label abgeschnitten und es kommt zu den komischsten Darstellungen. Das muss doch irgendwie gehen.

    Viele Grüße
    Nils
  • So eine generische Antwort kann man da nicht geben, weil ja niemand Dein gewünschtes Layout kennt. Prinzipiell geht's aber gut mit dem Autolayout, ist nur manchmal etwas knifflig. Am besten erstellst Du die ganzen Constraints erst dann, wenn dein Interface im großen und ganzen fertig ist, ansonsten musst Du die Constraints öfters anpassen, da ja die Änderung an einem GUI-Element durch die Constrainst ja viele andere Elemente beeinflussen kann und dann wird alles durcheinander gewürfelt.

    1. Lass Dir die Contraints nicht durch Xcode erzeugen: Das Ergebnis ist oft recht bunt, aber meist nicht das gewünschte ;)

    2. Wenn mal wieder alles durcheinander ist, ist es oft schneller die Constraints für ein Element mit "Clear Constraints" zu löschen und neu zu erstellen als zu suchen, was wieder nicht passt.

    3. Ein guter Anfang ist es, die Elemente an die Rand Ihres Superviews zu pinnen (Trailing, leading, top, bottom, ja nach Bedarf). Damit sind sie erstmal von den anderen Element nicht beeinflusst. Damit kriegt man auch oft ein passendes Resizing-Verhalten hin. Dann schauen was passt und gegebenenfalls verfeinern.

    schönen Gruß

    gandhi
  • So habe ich es ja Jahre lang gemacht.Ich arbeite mit AutoLayout schon seit iOS 6. Ich hatte mein Layout fertig und wollte dann eben wie immer die Constraints setzten. Sieht auch alles schick aus. Lasse ich das jetzt auf den 5er laufen nicht mehr. Da werden Elemente zusammen geschoben, Falsch angezeigt etc. Man kann ja nicht mal bei 320px aufhören, da dass dann auch nicht passt. Also um etwas besser zu Fragen: Wie macht man das jetzt am besten, da die Größen nicht mehr stimmen? Das iPhone 5 ist 320x568 aber in Xcode 400x600. Beim 4er zum 5er ist ja wenigstens die Breite geblieben. mein Layout sieht jetzt auf 400px Breite gut aus passt aber auf 320px nicht drauf - trotz AutoLayouts. Ich hab einfach immer am Rand des Superviews gepinnt. Gibt es was was sich mit SIze Classes beschäftigt? Wie man da am besten ran geht?
  • macmoonshine schrieb:

    Size-Classes sind für Deine Unterscheidung der Screengrößen nicht geeignet.


    Aber wie erstelle ich dann ein Layout? Ich will einfach nur ein Layout was auf den 4er, 5er und 6er gut aussieht. Autolayout macht da nur Müll und das sieht komisch aus. Gibt es da nichts von Apple, wo die da Hilfe geben? Ich habe mal ein WWDC Video darüber gesehen aber da haben die nicht gezeigt, wie man das macht. Die haben das da nur in den Himmel gelobt aber wie man jetzt ein Layout für das 5er erstellt kein Plan.