2017-03-22 4 views
1

ich bei jedem Gerät anmelden vornehmen muß die Größe, um zu suchen, wie in Bild unten, ich versuche Constraints zu Bild, Textfeldern und Schaltfläche zu setzen, aber es sieht nicht das gleiche auf allen Geräten Die Frage ist also, wie man Constrains vom Gerät abhängig macht, dass Bilder und Felder auf jedem Gerät skaliert werden. I ma arbeiten an StoryboardSwift 3, wie Constraints auf jedem Gerät

enter image description here

+0

Also was wollen die Komponenten auf Basis der Bildschirmgröße skalierbar sein, oder? –

+0

@AhmadF Ja, genau was ich brauche –

+0

Versuchen Sie dieses Tutorial https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2 –

Antwort

1

sollten Sie gewählt haben Ihr Objekt in Ihrem Storyboard festlegen möchten. Und klicken Sie dann auf die Strg-Taste, scrollen Sie den Cursor zu Superview und klicken Sie auf gleiche Breite/gleiche Höhe Eigenschaften und setzen Sie Multiplikator die gewünschte Rate. Da ist es.

2

Höhe Constraint für die Bilder erstellen und mit dem Controller image

aber es gibt bessere Optionen mit Layout

@IBOutlet weak var yourConstraint: NSLayoutConstraint! 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    let size = view.bounds.size.width 


    if size > 400 { 

     yourConstraint.constant = 230 

    }else if size > 350 { 

     yourConstraint.constant = 200 

    }else{ 

     yourConstraint.constant = 170 

    } 
    } 
2

Anbetracht dessen, dass Sie die Einschränkungen über Storybaord Griff passen (für mich, in den meisten Fällen ziehe ich das) zu tun ist, wenn eine Komponente der Größe der Bildschirmgröße werden bezogen hat, dessen Höhe/Breite Constraints sollten auf der Grundlage ihrer Multiplayer Wert addiert werden.

Um deutlich zu machen, folgendes Beispiel:

Hier ist eine bestimmte Szene:

enter image description here

Beide schwarz und blau Ansichten Größen: (width: 187.5, height: 66.5), aber es ist die Sache, schwarz Ansicht Breite/Höhe Constraints basieren auf konstanten Wert:

enter image description here

aber die blauen Constraints basieren auf Multiplayer Wert:

enter image description here

Wie Sie sehen können, beiden Einschränkungen sagen: „Proportional zu: Superview“, was bedeutet, dass ihre Werte proportional auf dem basiert Super View-Wert. Durch die Wahl der Breite Ansicht -für Beispiel-:

enter image description here

Beachten Sie, dass der Multiplayer Wert beträgt 0,5, was bedeutet, dass diese Ansicht (blau Ansicht) Breite wird die Hälfte der Größe der Superbreite sein, egal, was die Wert der Superview-Breite.

Wie diese Einschränkung hinzufügen?

  • Wählen Sie die gewünschte Ansicht.
  • ctrl + in den Superview ziehen
  • Wählen Sie die Option "Gleiche Breiten".

Vorerst sollte es ähnlich sein:

enter image description here

die Einschränkung auswählen und seine Multiplayer Wert bearbeiten (von der Größe Inspektor) auf den gewünschten Wert.

ODER

noch ein einfacher Trick, stellen Sie sicher, dass die gewünschte Ansichtsbreite ist gleich der Superbreite vor die Einschränkung hinzufügen, dass der Wert der Veränderung Multiplayer macht ohne zeigen, Orange Einschränkung leichter zu sein.

Ausgang:

iPhone 7:

enter image description here

iPad Pro:

enter image description here

Blau Ansichtsbreite ist immer die Breite des Bildschirms, mittlerweile die schwarz Einer hat eine feste Breite.

Hoffe das half.

+0

Das ist was Ich brauche, aber eine andere Frage, wie man es mit Constrains von Objekt zu Bottom machen und von der linken Geräteseite zum Objekt einschränken kann? –

+0

Gut zu helfen. Ich denke, dass ich es nicht bekommen habe :) "Constrains von Objekt zu Bottom": sollte "Vertikaler Abstand zu Bottom" und "Constrain von linken Geräteseite zu Objekt": sollte "Leading Space to Container" sein und ja, beide Einschränkungen Multiplayer ist editierbar. –