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
Antwort
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.
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
}
}
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:
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:
aber die blauen Constraints basieren auf Multiplayer Wert:
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-:
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:
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:
iPad Pro:
Blau Ansichtsbreite ist immer die Breite des Bildschirms, mittlerweile die schwarz Einer hat eine feste Breite.
Hoffe das half.
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? –
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. –
- 1. Swift Constraints in Unterklasse
- 2. Einrichten von Metal in Swift 3 auf einem iOS-Gerät
- 3. Javascript Unix Timestamp anders auf jedem Gerät
- 4. Bootstrap Karussell Vollbild auf jedem Gerät
- 5. UIPickerView auf Swift 3
- 6. Wie erhalten Sie Cursor über ContentResolver auf jedem Gerät?
- 7. CanBecomeFocused auf swift 3
- 8. iOS: frame.size.width/2 erzeugt keinen Kreis auf jedem Gerät
- 9. Swift - Constraints Ausgabe in erweiterbar TableViewCell
- 10. Constraints in Code mit swift - nicht aktivierbar
- 11. Generische Constraints und Initialisierung Vererbung in Swift
- 12. android finden entfernung von jedem ble-gerät
- 13. Wie verwende ich MPMedaPickerController auf swift 3?
- 14. Swift set Button Constraints mit einem Bild
- 15. Debug Ionic 3 Code auf dem Gerät
- 16. NSLocalizedString Laufzeitfehler auf Swift 3
- 17. Android - WebView Schriftart sieht auf jedem Gerät anders aus
- 18. Swift 3-Segment-Ansicht Fehler
- 19. Constraints in Xcode 8 - Ein Objekt je nach Gerät vergrößern
- 20. Zugriff auf JSON-Objekt auf swift 3
- 21. Fehlerumwandlungseinrichtung Token Swift 3
- 22. Swift 3:
- 23. Swift 3 - Hinzufügen von BarButtonItem zur Navigationsleiste auf jedem ViewController ohne Code zu wiederholen
- 24. Swift 3 CVaListPointer Typ Konflikt
- 25. Core Data Swift 3 Beziehung
- 26. Swift 3 wie Orientierung sperren
- 27. Swift 3 Draggable UIButton
- 28. Wie programmgesteuert Constraints verwenden?
- 29. Swift 3
- 30. Swift 3 mehrdeutige Verwendung von Index nur beim Debuggen auf dem Gerät
Also was wollen die Komponenten auf Basis der Bildschirmgröße skalierbar sein, oder? –
@AhmadF Ja, genau was ich brauche –
Versuchen Sie dieses Tutorial https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2 –