Mam kilka widoków w mojej aplikacji, które muszą być w stanie wyświetlać zarówno zawartość LTR, jak i RTL (nie w tym samym czasie), a to musi być niepowiązane do ogólnego kierunku układu aplikacji. To znaczy, chcę móc powiedzieć konkretny widok, aby odwrócić jego układ z LTR na RTL i odwrotnie, w locie, bez zmiany języka systemu.
Badałem to całkiem sporo, ale na bok z dwóch poniższych rozwiązań, wydaje się, że nie jest możliwe:
Flip layout on iPhone for RTL languages
How to force "Respect Language Direction" from RTL to LTR and vice versa
Pierwsze rozwiązanie nie jest odpowiednie w moim przypadku. Drugie rozwiązanie pozwoliło mi zachować dwie wersje dla każdego widoku, jeden dla RTL i jeden dla LTR, i użyć odpowiedniego na bieżąco. Oznacza to, że będę musiał dwukrotnie zaktualizować widoki każdej aktualizacji interfejsu użytkownika.
Trzecie rozwiązanie polega na ręcznej zmianie układu widoku, programowo, zgodnie z odpowiednim kierunkiem, przed wyświetleniem widoku.
Więc, czy to są moje jedyne opcje?
P.S: Mówię tylko o układzie, a nie o ciągach lokalizacji, ponieważ sam zajmuję się właściwym tekstem.ios 7 - Układ widoku siły odwraca się do RTL bez zmiany języka
7
A
Odpowiedz
2
Począwszy od wersji iOS 9, można to teraz zrobić za każdym razem, korzystając z właściwości UIView
o wartości UIView
. Jeśli korzystasz z automatycznego układu lub jeśli twoje elementy sterujące pochodzą/dziedziczą z UIKit, powinny po prostu robić to, co właściwe, gdy ta właściwość jest ustawiona.
Należy pamiętać, że w przypadku etykiet, pól tekstowych i widoków może zajść konieczność zmiany wyrównania tekstu w zależności od wyświetlanego tekstu.
7
Znalazłem to dość łatwe do wdrożenia, że tak:
func setRTL(_ sender: UIButton) {
UIView.appearance().semanticContentAttribute = .forceRightToLeft
UINavigationBar.appearance().semanticContentAttribute = .forceRightToLeft
if let vc = storyboard?.instantiateViewController(withIdentifier: "root") {
UIApplication.shared.keyWindow?.rootViewController = vc
}
}
Preview:
i sprawdzić pełną DEMO.
Powiązane problemy
- 1. Automatyczny układ z paskiem nawigacyjnym i kontrolerem widoku (iOS 7)
- 2. iOS 7 Układ automatyczny Pozycja Y/wysokość Brakujące wiązanie
- 3. iOS 7 - dostosowywanie do paska stanu
- 4. iOS 9 wyłącza obsługę języka pisanego od prawej do lewej
- 5. RTL jest zmuszony w urządzeniach RTL
- 6. Pasek stanu pojawia się ponad granicami mojego widoku w iOS 7
- 7. JSP internacjonalizacja RTL/LTR
- 8. Aktualizowanie fragmentu obiektu języka javascript bez zmiany porcji czasu
- 9. lokalizacja iPhone'a bez zmiany ustawień dla iPhone'a
- 10. iOS: Automatyczny układ a automatyczne maskowanie - zmiana rozmiaru całego widoku do wypełnienia?
- 11. iOS 7 Treść rozciąga się na przestrzeni kilku UITableViewCells
- 12. UITableViewCellAccessoryCheckmark nie wyświetla się w iOS 7
- 13. Projekt odwołuje się do atrybutów RTL, ale nie włącza ani wyłącza jawnie obsługi RTL.
- 14. Aplikacja zawiesza się podczas zmiany języka klawiatury klawiatury wejściowej Windows
- 15. iOS - cofnij się do mojego początkowego kontrolera widoku
- 16. iOS 7 - region.center przestarzałe
- 17. ios 7 bottomLayoutGuide with uitabbarcontroller
- 18. Jaki jest wpływ zmiany ustawienia "Dynamiczne RTL" dla biblioteki statycznej?
- 19. Razor Zobacz Bez Układ
- 20. Android: odzwierciedla zmiany języka interfejsu użytkownika w locie bez ponownego ładowania/restartowania aplikacji.
- 21. Układ komórki UICollectionView znajduje się poza granicami widoku kolekcji
- 22. iOS: powrót do poprzedniego widoku
- 23. Interior.Color Property odwraca kolory?
- 24. jak utworzyć układ nakładania się mapy w widoku pager
- 25. Dlaczego BinaryReader.ReadUInt32() odwraca wzór bitowy?
- 26. iOS 7 UINavigationController Wciśnięcie cienia animacji
- 27. ViewFlipper nie odwraca się z widokiem listy podrzędnej
- 28. UICollectionView Invalidate Układ Na Bounds Zmiany
- 29. Układ zmiany rozmiaru klawiatury Android miękki
- 30. Jak wykrywać zmiany orientacji i zmieniać układ?
miałeś szczęście w implementacji tego? – user2695433
@ user2695433 checkout my answer. – Sayakiss