Używam klas AutoLayout i Size, ale wraz z wydaniem iOS 10 i nowego Xcode 8.0 pojawiła się jedna nowa opcja Vary for Traits
. Czy to zamiennik Size Classe dla różnych szerokości i wysokości urządzeń.
Po zaznaczeniu width
pola wyboru wyświetla się varying 14 compact width devices
.
Po zaznaczeniu height
pola wyboru wyświetla się varying 18 compact height devices
.
Po zaznaczeniu obu pól wyboru wyświetla się varying 11 compact width regular height devices
.
Jak skorzystać z tej opcji? Czy możemy używać AutoLayout z klasami rozmiaru, takimi jak Xcode7.0? Jeśli ktoś ma dogłębną wiedzę, proszę o wyjaśnienie.
ios
xcode8
ios10
ios-autolayout
technerd
źródło
źródło
Odpowiedzi:
To tylko rozszerzenie tego, jak szybko używać „różnych cech” w projekcie w celu dodawania różnych układów dla iPada i iPhone'a.
Przeczytaj to, aby dowiedzieć się więcej na temat klas wielkości.
https://developer.apple.com/reference/uikit/uitraitcollection
Jeśli pomijasz poniższy przykład, przeczytaj podsumowanie na końcu.
Potrzebujesz przycisku o różnych szerokościach na iPhonie i iPadzie. Pierwsza ma szerokość 80, a druga 300.
Różne dla cech z wieloma ograniczeniami, jak zainstalowane.
KROKI :
WNIOSEK:
Zwróć uwagę, że w sumie dodano dwa ograniczenia, aw obu z nich wartości różnią się w zależności od wybranej klasy rozmiaru.
Różni się dla cech z jednym ograniczeniem, zainstalowano wiele klas rozmiaru
WNIOSEK:
Wydaje się, że jest to lepsza opcja niż dodawanie dwóch ograniczeń, gdy wymagane jest tylko jedno ograniczenie, a wartość stała się różni.
KIEDY STOSOWAĆ, CZEGO STOSOWAĆ:
Oba podejścia zasadniczo robią to samo, ustawiając wartości na klasy rozmiaru.
Ale # Method1 jest używana, gdy chcesz dodać ograniczenie specjalnie dla urządzenia lub powiedzieć, że klasa rozmiaru. Na przykład w iPhonie przycisk powinien znajdować się od Top 50 pkt, aw iPadzie powinien być wyśrodkowany w poziomie i w pionie. W takich sytuacjach musisz użyć VaryForTraits, ponieważ otwiera drzwi, aby dodać wiązania dla określonej klasy rozmiaru.
# Metoda2 jest używana, gdy chcesz mieć różne wartości stałe dla tego samego typu ograniczenia.
PS: DO WSZYSTKICH, KTÓRZY NIE MOGĄ POZNAĆ PRZYKŁADOWEJ DZIAŁANIA
Upewnij się, że dodajesz tylko wymagane ograniczenia jako zainstalowane. Pole wyboru obok Zainstalowano powinno pojawiać się tylko w przypadku ograniczenia, którego potrzebujesz dla klasy rozmiaru. To jest klucz!
Po prostu dodaj górne ograniczenie i początek do uiButton w widoku. Wybierz górne ograniczenie i usuń zaznaczenie podstawowej opcji Zainstalowano ze znakiem plus. Teraz, klikając znak plus, dodaj odmianę do C R i zaznacz tę opcję. Teraz zmień urządzenie z iPhone'a na iPada z różnymi kombinacjami orientacji. To ograniczenie będzie stosowane tylko do klasy rozmiaru C R, czyli iPhone'a w orientacji pionowej. Jeśli zaznaczono pole wyboru obok podstawowego zainstalowanego (tego z symbolem plusa), oznacza to, że ograniczenie powinno zostać zastosowane do wszystkich klas wielkości.
PODSUMOWANIE :
Odmiana cechy to zmiana w prezentacji interfejsu użytkownika oparta na konfiguracji urządzenia. Cechy charakterystyczne interfejsu użytkownika nie ograniczają się tylko do ograniczeń, ale można je zastosować do znacznie większej liczby. Na przykład zmiana koloru tła i innych elementów, gdy urządzenie jest ustawione na ciemny styl. Odmiana może dotyczyć elementu interfejsu użytkownika, na przykład usunięcia ograniczenia, lub właściwości klasy widoku lub ograniczenia, na przykład czcionki etykiety. Możesz zmieniać:
Rozmiar lub położenie widoku
Instalacja widoku
Instalacja wiązania
Stała ograniczenia
Czcionka
Kolor czcionki, odcienia lub tła
Marginesy układu
Plik graficzny
Konkretny zestaw właściwości, które można zmieniać, zależy od klasy elementu. W tym przykładzie zademonstrowaliśmy użycie - Instalacja ograniczenia & - Stała ograniczenia. Inne są dość proste i można je łatwo wywnioskować.
źródło
Zmienna dla cech jest ewolucja opcji klas wielkości, która była obecna w poprzedniej wersji Xcode. Pozwala na znacznie bardziej sprytną i precyzyjną wariację na podstawie cech. Oczywiście nie ogranicza się to tylko do odmian iPada / iPhone'a, ale można również określić odmiany w zależności od orientacji i innego urządzenia.
Inne odpowiedzi w tym wątku mają pewne braki i nieścisłości, być może najbardziej efektywnym sposobem udzielenia odpowiedzi jest zrobienie przykładu. Dla jasności ograniczymy nasz przykład tylko do przycisku i dwóch układów. Jednak, jak wyjaśniono poniżej, możesz dowolnie rozszerzać poniższy przykład. Naszym celem jest dostosowanie pozycji przycisku między dwoma różnymi układami: poziomym i pionowym na wszystkich urządzeniach.
Uwaga: jeśli nie jest włączona opcja „Różne dla cech”, wszystkie dostosowania układu i interfejsu użytkownika odnoszą się do wszystkich cech (tj. Do wszystkich klas wielkości).
Zacznijmy od umieszczenia przycisku na naszej planszy. Ponieważ opcja „różne dla cech” nie jest włączona, przycisk będzie obecny we wszystkich różnych układach. Gdybyśmy zamiast tego włączyli zmienne dla cech, przycisk odnosiłby się tylko do wybranej cechy.
Teraz włączmy opcję „zmieniaj dla cechy” i wybierzmy wariant oparty na wzroście. Powinieneś zobaczyć, że dolny ekran zmieni kolor na niebieski i zgodnie z wyborem zobaczysz wszystkie urządzenia, na które ma to wpływ. Na razie w porządku.
Wybierz ponownie przycisk i dodaj zwykłą reklamę z ograniczeniami. W naszym przykładzie dodamy górną i lewą spację wiodącą, a także szerokość i wysokość. Następnie kliknij „Done Varying”. Zobaczysz, że dolna część ekranu ponownie zmieni kolor na szary. To, co się dzieje, to fakt, że powiedzieliśmy Interface Builder, aby dodał powyższe ograniczenia tylko dla klas (w: C h: R).
Teraz wybierz tryb poziomy na dole ekranu. Zobaczysz, że Button jest czerwony, ponieważ nie ma ograniczeń, które dodałeś tylko dla niektórych cech. Wybierz ponownie zmianę dla cech i wybierz ponownie zmianę wysokości. Dodaj następujące ograniczenia:
i naciśnij gotowe, zmieniając. Teraz przycisk jest dobrze widoczny na ekranie zarówno w orientacji poziomej, jak i pionowej.
Buduj i uruchamiaj. Zobaczysz, że przycisk zmieni się w zależności od orientacji ekranu.
Możesz tworzyć bardziej zaawansowane układy według tego wzorca. Na przykład możesz wybrać na początku zmienną dla cech i upuścić obiekty UIKit tylko dla określonej cechy. Ten obiekt będzie obecny tylko w podanym wariancie, a na pozostałych będzie wyszarzony, co pozwoli na tworzenie zupełnie innych interfejsów użytkownika w oparciu o cechy.
źródło
To nic innego
size classes
jak jaźń, ale z inną reprezentacją. dopókixcode 7
nie użyliśmy klas wielkości i nie rozważymyheight-width
wregular,compact and any
sposób, wvary for traits
koncepcji jest to samo, ale xcode szczegółowo wyjaśniaexact device
. W starszej wersji wiemy, żefor every iphone in portraint
itp. Informacje gdzie w tym możemy poznać dokładne urządzenie!Sprawdź poniższe zrzuty ekranu,
Aby uzyskać więcej informacji, zapoznaj się z wwdc2016 - wideo !
Źródła: This So Post
źródło