Was ist "Variieren für Merkmale" in Xcode 8?

84

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.

Geben Sie hier die Bildbeschreibung ein

Durch Auswahl des widthKontrollkästchens wird es angezeigt varying 14 compact width devices.

Geben Sie hier die Bildbeschreibung ein

Durch Auswahl des heightKontrollkästchens wird es angezeigt varying 18 compact height devices.

Geben Sie hier die Bildbeschreibung ein

Durch Auswahl beider Kontrollkästchen wird angezeigt varying 11 compact width regular height devices.

Geben Sie hier die Bildbeschreibung ein

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.

technerd
quelle
Schauen Sie sich die Videos der WWDC 2016-Sitzung an. Ich bin sicher, dass das irgendwo als "neue Funktionen von Xcode" behandelt wurde.
Martin R

Antworten:

132

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

Geben Sie hier die Bildbeschreibung ein

Wenn Sie das folgende Beispiel überspringen, lesen Sie am Ende die Zusammenfassung.


  • ZIELSETZUNG :

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.

  • METHODE 1 :

Variieren Sie für Merkmale mit mehreren Einschränkungen, wie installiert.

  • SCHRITTE :

    1. Fügen Sie zuerst die allgemeinen Einschränkungen hinzu, z. B. Zentrieren Sie die Schaltfläche horizontal und vertikal.

Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie VaryForTraits und für iPhone-Bildschirme gemäß den Richtlinien für Größenklassen passt eine C * R-Größenklasse zum Modell. Hiermit überprüfen wir die Häkchen für Breite und Höhe in PopUp. Schließen Sie das Popup, indem Sie auf eine beliebige Stelle auf dem Bildschirm klicken.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Fügen Sie die Breitenkonstante hinzu und prüfen Sie, ob die Einschränkung für die Größenklasse C * R hinzugefügt wurde. Wählen Sie nach dem Hinzufügen von Einschränkungen die Schaltfläche Fertig Variieren.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie für iPad-Bildschirme erneut ein iPad-Gerät aus und wählen Sie VaryForTraits. Dieses Mal sollte beim Klicken auf Höhe-Breite die R * R-Variation angezeigt werden.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Fügen Sie erneut eine Breitenbeschränkung hinzu. Die zuletzt hinzugefügte iPhone-Breitenbeschränkung muss wie im Screenshot nicht hervorgehoben sein. Der Mehrwert gilt diesmal für die Größenklasse R * R.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Wechseln Sie zurück zum iPhone-Layout und es dauert 80 als Breite und das iPad 300.

Geben Sie hier die Bildbeschreibung ein

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.


  • Methode 2:

Variieren Sie für Merkmale mit einer Einschränkung, mehrere Größenklassen installiert

  • SCHRITTE :
    1. Fügen Sie die normale Breitenbeschränkung hinzu. Wählen Sie dann diese Einschränkung aus und klicken Sie neben dem Konstantenwert auf die Schaltfläche +.

Geben Sie hier die Bildbeschreibung ein

  1. Fügen Sie eine Variation der Merkmale hinzu, und für das iPhone wählen wir C * R und setzen den konstanten Wert auf 100.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Für das iPad, das einer Merkmalsvariation als R * R folgt, fügen wir eine weitere Variation hinzu, indem wir erneut auf die Schaltfläche + klicken und den Wert auf 300 setzen.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

  1. Wenn Sie ein iPad auswählen, wird die Breite automatisch als 300 angenommen. Wenn Sie zum iPhone zurückkehren, wird 100 als Wert angenommen.

Geben Sie hier die Bildbeschreibung ein

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!

Geben Sie hier die Bildbeschreibung ein

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.

Jen Jose
quelle
51
Dies funktioniert nicht für mich. Es aktualisiert die Einschränkungen für alle Bildschirmgrößen und praktisch nichts passiert ...
Dan
5
Wenn es nicht funktioniert, lesen Sie Folgendes : help.apple.com/xcode/mac/8.0/#/devba3dd0b51 . Wenn Sie die Schriftart oder eine andere Eigenschaft anpassen möchten, klicken Sie auf "+" links neben der Eigenschaft im Attributbereich. Und Sie können die Eigenschaften für iPhone 4s und iPhone 7 Plus beispielsweise je nach Breite nicht variieren, da beide eine kompakte Breite haben. Sie können sie für iPhone und iPad variieren.
Denis Kutlubaev
2
Arbeitete für mich danke :)
Sanman
1
Es hat bei mir funktioniert, nachdem ich die alte Einschränkung gelöscht und eine neue hinzugefügt habe, anstatt ihren Wert zu ersetzen.
Teodor Ciuraru
2
Für die Leute, die sagen, dass dies nicht funktioniert. Ich denke, Sie versuchen, alle Einschränkungen zu ändern. Sie können nur den konstanten Wert in einer Einschränkung ändern. Sie können die mehreren oder andere Eigenschaften der Einschränkung nicht ändern. Ich war auch in diesem Teil verwirrt.
3366784
21

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).

fig1

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.

fig2

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.

Abb. 3

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.

fig4

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:

fig5

und drücken Sie unterschiedlich. Jetzt ist die Schaltfläche auf dem Bildschirm sowohl für Quer- als auch für Hochformat gut erkennbar.

Abb6

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.

Valvolin
quelle
3
Ich habe Einschränkungen für die Klasse (wC, hR) hinzugefügt und dann auf "Variieren" geklickt. Wenn ich öffne (wR, hR), sehe ich auch die alten Einschränkungen. So erstellen Sie neue Einschränkungen für (wR, hR) diese Klasse. Bitte sagen Sie mir @valvolin
Ramcharan Reddy
9

Es ist nichts als size classeses selbst, aber mit unterschiedlicher Darstellung. Bis xcode 7wir Größenklassen verwendet haben und wir height-widthin gewisser regular,compact and anyWeise berücksichtigen , ist das vary for traitsKonzept dasselbe, aber xcode erklärt es spezifisch exact device. In älteren Versionen wissen wir, dass for every iphone in portraintusw. Art von Informationen, in denen wir genaues Gerät kennen können!

Überprüfen Sie die folgenden Screenshots,

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Weitere Informationen finden Sie unter wwdc2016 - Video !

Referenz: This So Post

Ketan Parmar
quelle
Ok, lassen Sie mich das WWDC-Video überprüfen.
Technerd
Sie haben Recht, es ist nichts als die Entwicklung der Größenklassen
Durai Amuthan.H