Mam tableView z komórkami statycznymi. Komórka zawiera ImageView, który całkowicie ją wypełnia. I mam jeszcze inne mniejsze ImageViews. Ustawiam ten widok z ograniczeniami. Mam pytanie dotyczące zmiany ograniczeń. W jaki sposób mogę ustawić różne stałe ograniczenia dla różnych rozmiarów urządzeń bez programowania, jeśli/else pętle. Czy istnieje sposób na umieszczenie go w scenorysie? Mam wiodącą ograniczenie do układu nadrzędnego na przykład z stałej wartości 10. Jest w porządku na ekranie iPhone 5, ale na iPhone 6/6 Plus ekran powinien być wyższy niż 10. iPhone5 AutolayoutiPhone6 AutolayoutJak ustawić różne wiązania Auto Layout dla różnych rozmiarów ekranów
Odpowiedz
Wreszcie znalazłem rozwiązanie, które działa w moim przypadku.
- Włożyłem przejrzysty widok i dodał Align Center X/Y do Superview (obraz tła) ze potrzebne przesunięcie w sposób, który nie pasuje do mojej klatki dla plakatów (na obraz tła) - Constraints for the transparent view
- Następnie Załączam równą szerokość/wysokość do mojego Superview (obraz tła) dla tego przezroczystego widoku i zmieniam mnożnik na jednakowej szerokości (ręcznie wybrałem 0,61).
- Po tym czasie wylądowałem na moim 1 plakacie. Wyśrodkowałem również w pionie i poziomie z przesunięciem i użyłem tego zestawu wiązań - Proporcjonalna szerokość do Superview, Współczynnik proporcji.
- I ostatnia wystawiłam mój drugi plakat z tymi ograniczeniami. Prowadziłam do Poster1, Wyrównaj CenterY do Poster1 (z offsetem w moim przypadku) i Equal width/height.Constraints for the Poster 1/2
W rezultacie, mam naprawdę adaptacyjne autoLayout który działa prawie świetnie na iPhone 5-6-6 +
Bardzo łatwo. Możesz zmienić wartości stałych dla klas wielkości różnic w Storyboard. Daję ci kilka kroków, po których będziesz w stanie to pojąć.
Najpierw tworzymy stałe jak widać na tym widoku
Dalej wybieramy stałą chcemy zmienić wartość w innych klasach wielkości.
Nadchodzi trudna część. W kontrolerze atrybutów po wybraniu stałej można zobaczyć wartość stałej. Tuż obok znajduje się znak "PLUS (+), po lewej stronie" stałej ".
Kliknij na niego i wybierz swoją klasę wielkości. Tutaj wybrałam wysokość regularną o regularnej szerokości, np. Dla rozmiarów iPada.
Następnie dodajemy nową wartość. Stała, która zwykle ma wartość 61, będzie działała jako 10, gdy będzie renderowana w klasie wielkości klasy iPada.
Jak widać, te same stałe ma inną wartość w czasie wykonywania odpowiadającą różnych klas wielkości.
Mam nadzieję, że moje wyjaśnienie ci pomogło.
Saheb, dziękuję bardzo !! Taka miła odpowiedź i całkowicie pokrywa jedną część mojego problemu - działa z urządzeniami, które mają różne SizeClasses (iPhone/iPad). I co mogę zrobić, gdy chodzi o skalowanie, ponieważ obraz tła, który wypełnia moją komórkę jest szerszy na iPhone6 niż na iPhone5! powoduje to przesunięcie dwóch górnych plakatów względem obrazu tła, jak widać powyżej. –
dla innych urządzeń, takich jak iPhone4 i 5, z tych samych klas wielkości można ręcznie sprawdzić i zmienić ograniczenia lub można zaprojektować swoje obrazy w tym aspekcie. –
Wiem o tym rozwiązaniu i wciąż szukam uniwersalnego, które będzie działać z każdym urządzeniem ;-)) –
- 1. Usuń element dla niektórych rozmiarów ekranów
- 2. Susy: Użyj różnych układów dla różnych rozmiarów ekranu
- 3. Android stosuje style dla różnych ekranów
- 4. Auto Layout UILabels
- 5. Auto Layout: layoutMarginsGuide
- 6. Auto Layout i sizeForChildContentContainer
- 7. UICollectionViewCell Auto Layout
- 8. Auto Layout nie działa?
- 9. Jak ustawić różne ustawienia scrapy dla różnych pająków?
- 10. Xcode - jak ustawić różne identyfikatory pakietów dla różnych konfiguracji kompilacji?
- 11. Przesyłanie wielu plików APK dla różnych ekranów
- 12. iOS 7 Auto Layout a iOS 8 Adaptive Layout, czy jest jakaś różnica?
- 13. Znajdź zduplikowane obrazy różnych rozmiarów
- 14. UIScrollView z iOS Auto Layout Ograniczenia: Niewłaściwy rozmiar dla subviews
- 15. Auto Layout: animowanie zmiany NSLayoutConstraint za mnożnik
- 16. Różne ustawienia dla różnych urządzeń?
- 17. Android - jak ustawić kolor tła wszystkich ekranów?
- 18. Niestandardowy UICollectionViewCell Auto Layout NSInternalInconsistency Błąd wyjątku
- 19. UIView z Auto layout, uzyskać jego rozmiar
- 20. Skalowanie rozmiarów ekranu aplikacji internetowych dla różnych urządzeń
- 21. czy możliwe jest dostarczanie różnych obrazów dla UIImageView w różnych klasach rozmiarów
- 22. Różne konstrukcje Androida dla różnych środowisk
- 23. Różne tła dla różnych stanów UI-router
- 24. Jak ustawić wartość FallbackValue dla wiązania na UIElement.Margin?
- 25. XCode Różne zasoby dla różnych celów
- 26. Jak ustawić różne certyfikaty SSL dla vhostów w Apache?
- 27. Jak dopasować UICollectionViewCell do jego podobrazów (przy użyciu Auto Layout)?
- 28. Różne limity czasu sesji dla różnych użytkowników
- 29. Jak ustawić inny układ szablonu dla różnych modułów w Symfony
- 30. Jak ustawić różne kolory paska nawigacyjnego dla różnych kontrolerów UIViewcontrol w Xib?
'bez programowania if/else pętle' - if/else to gałąź * * nie pętla*. –
gdzie to znalazłeś? :-)) –
Innym podejściem jest użycie stosunku https://github.com/onmyway133/blog/issues/35 – onmyway133