Ich weiß, diese Frage scheint passen eine der alte Schule ein, zu sein, aber ich kann eine nette Antwort darauf nicht finden, gibt es die Sache:Wie unterschiedliche Bildschirmgrößen in ios
Die logischen Bildschirmauflösungen für iPhone5, iPhone6 und iPhone6 +:
iPhone5 320 x 568
iPhone6 375 x 667
iPhone6+ 414 x 736
sei angenommen, dass I einen quadratischen Oberflächenelement in der Mitte des Bildschirms haben, und es gibt drei Möglichkeiten, seine Breite (& Höhe) über verschiedene Geräte zu beschränken:
width
konstantwidth/screen.width
konstant istscreen.width - width
diese drei verschiedenen Arten von Ergebnis in drei verschiedenen Erscheinungen beschränke konstant ist:
Picture 1: 3 different appearances
Ich denke, die zweite Art von Zwang (dh mittlere Spalte in der Picture 1
) ist am natürlichsten aus der Sicht des Designers, aber es ist am wenigsten natürlich aus der Sicht des Programmierers. Ich muss den Gerätetyp überprüfen und Abmessungen berechnen und verschiedene Bilder für verschiedene Geräte verwenden (Auto-Layout kann in diesem Fall nicht helfen)
Der erste Weg scheint sehr natürlich zu implementieren, aber es saugt in der Praxis, vor allem im Umgang mit Textschrift Größen.
3. muss auch beurteilen, welches Bild programmgesteuert verwendet werden soll, da drei UI-Elemente in drei verschiedenen Geräten nicht mit den einfachen Skalierungsfaktoren @x2
@x3
übereinstimmen.
Gibt es irgendwelche Arbeiten um die zweite Art der Zwangsführung zu implementieren?
Das UI-Element die richtigen Nachteile benötigt traints - keine Bildschirmwerte fest codieren. '1)' Fügen Sie horizontale und vertikale Mitteleinschränkungen hinzu (dadurch bleibt es zentriert). '2)' Fügen Sie dem Quadrat eine width = height ein (dadurch wird es zu einem Quadrat). '3)' Fügen Sie dem Quadrat eine Breite = Anteil der Superview-Einschränkung hinzu (dies ergibt eine Breite und eine Höhe basierend auf der Bildschirmgröße ohne fest codierte Bildschirmwerte und funktioniert für alle Geräte). –