Ich verwende die Klassen AutoLayout und Size, aber mit der Veröffentlichung von iOS 10 und dem neuen Xcode 8.0 gibt es eine neue Option Vary for Traits
. Ist dies der Ersatz von Size Classe für unterschiedliche Breite und Höhe von Geräten.
Durch Auswahl des width
Kontrollkästchens wird es angezeigt varying 14 compact width devices
.
Durch Auswahl des height
Kontrollkästchens wird es angezeigt varying 18 compact height devices
.
Durch Auswahl beider Kontrollkästchen wird angezeigt varying 11 compact width regular height devices
.
Wie kann ich diese Optionen nutzen? Können wir AutoLayout mit Größenklassen wie Xcode7.0 verwenden? Wenn jemand fundiertes Wissen hat, erklären Sie es bitte.
ios
xcode8
ios10
ios-autolayout
technerd
quelle
quelle
Antworten:
Dies ist nur eine Erweiterung, wie Sie "Vary Traits" schnell in Ihrem Projekt verwenden können, um verschiedene Layouts für iPad und iPhones hinzuzufügen.
Bitte lesen Sie dies, um mehr über die Größenklassen zu erfahren.
https://developer.apple.com/reference/uikit/uitraitcollection
Wenn Sie das folgende Beispiel überspringen, lesen Sie am Ende die Zusammenfassung.
Sie benötigen eine Schaltfläche mit unterschiedlichen Breiten in iPhone und iPad. Ersteres hat eine Breite von 80 und letzteres eine Breite von 300.
Variieren Sie für Merkmale mit mehreren Einschränkungen, wie installiert.
SCHRITTE :
FAZIT :
Bitte beachten Sie, dass insgesamt zwei Einschränkungen hinzugefügt wurden und sich die Werte in beiden Einschränkungen je nach gewählter Größenklasse unterscheiden.
Variieren Sie für Merkmale mit einer Einschränkung, mehrere Größenklassen installiert
FAZIT :
Dies scheint eine bessere Option zu sein, als zwei Einschränkungen hinzuzufügen, wenn nur eine einzige Einschränkung erforderlich ist und der konstante Wert unterschiedlich ist.
Wann zu verwenden, was zu verwenden:
Beide Ansätze machen im Grunde dasselbe und setzen Werte auf Größenklassen.
Aber # Method1 wird verwendet , wenn Sie eine Einschränkung speziell für ein Gerät oder sagen wir Größenklasse hinzufügen möchten. Auf dem iPhone sollte die Schaltfläche beispielsweise von den Top 50 stammen und auf dem iPad sollte sie horizontal und vertikal zentriert sein. In solchen Situationen müssen Sie VaryForTraits verwenden, da es Türen öffnet, um Einschränkungen für eine bestimmte Größenklasse hinzuzufügen.
# Methode2 wird verwendet, wenn Sie unterschiedliche Konstantenwerte für denselben Einschränkungstyp wünschen.
PS: AN ALLE, DIE NICHT IN DER LAGE SIND, DAS BEISPIEL ZU ARBEITEN
Stellen Sie sicher, dass Sie nur die erforderlichen Einschränkungen als installiert hinzufügen. Das Kontrollkästchen für Installiert sollte nur für die Einschränkung angezeigt werden, die Sie für eine Größenklasse benötigen. Das ist der Schlüssel!
Fügen Sie einfach eine oberste Einschränkung und einen zu einem uiButton in einer Ansicht führenden hinzu. Wählen Sie die oberste Einschränkung aus und deaktivieren Sie die grundlegende Option Installiert mit Pluszeichen. Fügen Sie nun durch Klicken auf das Pluszeichen eine Variation zu C R hinzu und aktivieren Sie diese Option. Ändern Sie nun das Gerät mit verschiedenen Ausrichtungskombinationen von iPhone auf iPad. Diese Einschränkung wird nur für die C R-Größenklasse angewendet, bei der es sich um ein iPhone im Hochformat handelt. Wenn das Kontrollkästchen für die Basisinstallation (die mit dem Plus-Symbol) aktiviert wurde, bedeutet dies, dass die Einschränkung auf alle Größenklassen angewendet werden sollte.
ZUSAMMENFASSUNG :
Trait Variation ist eine Änderung an der Darstellung Ihrer Benutzeroberfläche, die auf einer Gerätekonfiguration basiert. Merkmalsvariationen der Benutzeroberfläche sind nicht nur auf Einschränkungen beschränkt, sondern können auf viel mehr angewendet werden. Ändern Sie beispielsweise die Farbe des Hintergrunds und anderer Elemente, wenn das Gerät auf einen dunklen Stil eingestellt ist. Eine Variation kann auf ein Element der Benutzeroberfläche angewendet werden, z. B. das Entfernen einer Einschränkung, oder auf eine Eigenschaft einer Ansichtsklasse oder Einschränkung, z. B. die Schriftart für eine Beschriftung. Sie können variieren:
Größe oder Position einer Ansicht
Installation einer Ansicht
Installation einer Einschränkung
Einschränkungskonstante
Schriftart
Farbe für Schriftart, Farbton oder Hintergrund
Layoutränder
Bilddatei
Die spezifischen Eigenschaften, die Sie variieren können, hängen von der Klasse des Elements ab. In diesem Beispiel haben wir die Verwendung der Installation einer Einschränkung und der Einschränkungskonstante demonstriert. Andere sind recht einfach und können leicht abgeleitet werden.
quelle
Variieren für Merkmale ist die Entwicklung der Größenklassenoption, die in der früheren Version von Xcode vorhanden war. Es ermöglicht eine viel raffiniertere und präzisere Variation basierend auf Merkmalen. Natürlich ist es nicht nur auf iPad / iPhone-Variationen beschränkt, sondern Sie können auch Variationen basierend auf der Ausrichtung und verschiedenen Geräten angeben.
Andere Antworten in diesem Thread weisen einige Mängel und Ungenauigkeiten auf. Der vielleicht effizienteste Weg, eine Antwort zu geben, besteht darin, ein Beispiel zu geben. Aus Gründen der Übersichtlichkeit beschränken wir unser Beispiel auf nur eine Schaltfläche und zwei Layouts. Wie unten erläutert, können Sie das folgende Beispiel jedoch beliebig erweitern. Unser Ziel ist es, die Position einer Schaltfläche zwischen zwei verschiedenen Layouts anzupassen: Querformat und Hochformat auf allen Geräten.
Hinweis: Wenn die Option "Für Merkmale variieren" nicht aktiviert ist, beziehen sich alle Anpassungen des Layouts und der Benutzeroberfläche auf alle Merkmale (dh alle Größenklassen).
Beginnen wir mit einem Knopf auf unserem Storyboard. Da "Für Merkmale variieren" nicht aktiviert ist, ist die Schaltfläche in allen verschiedenen Layouts vorhanden. Wenn wir stattdessen "Variieren für Merkmale" aktiviert hätten, würde die Schaltfläche nur auf das bestimmte ausgewählte Merkmal bezogen.
Lassen Sie uns nun "Variieren für Merkmal" aktivieren und eine Variation basierend auf der Höhe auswählen. Sie sollten sehen, dass der untere Bildschirm blau wird und je nach Auswahl alle betroffenen Geräte angezeigt werden. So weit, ist es gut.
Wählen Sie die Schaltfläche erneut aus und fügen Sie die üblichen Einschränkungen hinzu. In unserem Beispiel fügen wir den oberen und linken führenden Bereich sowie Breite und Höhe hinzu. Klicken Sie danach auf "Done Varying". Sie werden sehen, dass der untere Teil des Bildschirms wieder grau wird. Was passiert ist, dass wir Interface Builder angewiesen haben, die obigen Einschränkungen nur für die Klassen (w: C h: R) hinzuzufügen.
Wählen Sie nun den Querformatmodus am unteren Bildschirmrand. Sie werden sehen, dass der Button rot ist, da ihm die Einschränkungen fehlen, die Sie nur für einige Merkmale hinzugefügt haben. Wählen Sie erneut variieren für Merkmale und wählen Sie erneut die Höhenvariation. Fügen Sie die folgenden Einschränkungen hinzu:
und drücken Sie unterschiedlich. Jetzt ist die Schaltfläche auf dem Bildschirm sowohl für Quer- als auch für Hochformat gut erkennbar.
Bauen und ausführen. Sie werden sehen, dass sich die Schaltfläche entsprechend der Ausrichtung des Bildschirms ändert.
Sie können erweiterte Layouts nach diesem Muster erstellen. Beispielsweise können Sie zu Beginn eine Variation für Merkmale auswählen und UIKit-Objekte nur für ein bestimmtes Merkmal löschen. Dieses Objekt ist nur in der angegebenen Variante vorhanden und auf der anderen ausgegraut, sodass Sie basierend auf den Merkmalen völlig unterschiedliche Benutzeroberflächen erstellen können.
quelle
Es ist nichts als
size classes
es selbst, aber mit unterschiedlicher Darstellung. Bisxcode 7
wir Größenklassen verwendet haben und wirheight-width
in gewisserregular,compact and any
Weise berücksichtigen , ist dasvary for traits
Konzept dasselbe, aber xcode erklärt es spezifischexact device
. In älteren Versionen wissen wir, dassfor every iphone in portraint
usw. Art von Informationen, in denen wir genaues Gerät kennen können!Überprüfen Sie die folgenden Screenshots,
Weitere Informationen finden Sie unter wwdc2016 - Video !
Referenz: This So Post
quelle