2014-10-16 16 views
8

Ich entwickle für iOS7 und 8 iPhone. Da iOS7 keine Größenklassen in kompakter Höhe unterstützt, dachte ich, dass die Konsensusmethode darin besteht, die Any-Any-Größenklasse für Landschafts-iPhone-Layouts zu verwenden und die Größe der kompakten Größe des Portraits in normaler Größe (cWrH) zu verwenden Klasse für iPhone-Layouts im Hochformat.Any-Any Größenklasse ignoriert für ios7

Ich legte eine Einschränkung für eine Ansicht in Any-any fest und änderte dann eine Constraint-Konstante in cWrH so, dass sie für diese Größenklasse spezifisch ist. Das iOS7-Gerät sowie die Xcode-Vorschau ignorieren jedoch die Any-Any-Einschränkung und verwenden die cWrH-Einschränkung für Hoch- und Querformat.

Ich habe keine Ahnung, warum das passiert. Alles, was ich tun möchte, ist abhängig von der Orientierung verschiedene Einschränkungen.

Dies kann mit dem neuesten Xcode 6.0.1 repliziert werden.

Halb bezogen werden: How can Xcode 6 adaptive UIs be backwards-compatible with iOS 7 and iOS 6?

unten Screenshots:

x and y of rect at 0 in Any-Any y=100 for cWrH size class only

+0

"In iOS 8 und höher verwenden Sie Größenklassen und automatisches Layout, um diese Erwartung zu erfüllen, indem Sie festlegen, wie das Layout von Bildschirmen, Ansichtscontrollern und Ansichten angepasst werden soll, wenn sich die Anzeigeumgebung ändert" https: // developer. apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LayoutandAppearance.html – TonyMkenu

+5

Ich stieß auf das gleiche Problem und ich verwende derzeit xcode 6.1.1. Ich denke, wir müssen akzeptieren, dass die Größenklassen trotz aller Behauptungen nicht mit iOS 7 abwärtskompatibel sind. – rmp251

Antwort

0

Wie pro Ihre Frage, was Sie getan haben ist haben Sie führende, Top, Höhe und Breite Einschränkungen in Any-Jeder beliebige Größenklasse.

So jetzt seine Position wird für alle Geräte im Quer-und Hochformat behoben werden. Wenn Sie nun die Größenklasse in kompakte Breite ändern und Änderungen an den oberen Beschränkungen vornehmen, wirkt sich dies sowohl auf das Hochformat als auch auf das Querformat aus.

Was Sie tun müssen, verwenden Sie die Größenklasse Any-Any, um Ihre Steuerelemente im View-Controller zu platzieren und die Beschränkungen festzulegen, die Sie im Hoch- und Querformat beibehalten möchten.

z. B .: Wenn Sie die Höhe und Breite fest beibehalten möchten, geben Sie diese Einschränkungen in jeder beliebigen Größenklasse an.

Wenn Sie Einschränkungen in Any-Any Size Class festlegen, werden diese Einschränkungen für Hoch- und Querformat gleichermaßen beibehalten.

1.) Legen Sie die oberen und unteren Randbedingungen im Hochformat fest width- Compact, height-Regular.

2.) Legen Sie die führenden und oberen Randbedingungen in Querformat fest width-Any, height-Compact.

Besuchen Link unten hat es die große Erklärung und Ihre meisten Fragen im Zusammenhang mit Auto-Layout bezogenen Größenklasse mit gelöst werden:

http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/

Hope this löst Sie Problem.

+1

Die Frage bezieht sich speziell auf die Unterstützung für iOS7.Leider ignoriert iOS7 jede Größenklasse mit height = Compact, daher ist Option 2 für dieses Ziel nicht möglich. – MojoTosh

Verwandte Themen