Tôi có một ứng dụng hỗ trợ 2 ngôn ngữ, tiếng Anh và tiếng Ả Rập. Tiếng Anh là trái sang phải & Tiếng Ả Rập từ phải sang trái.cách thay đổi userInterfaceLayoutDirection
Tôi có bộ điều khiển có tên LanguageViewController
. Có hai nút trong đó: Arabic & Tiếng Anh. Khi người dùng nhấp vào "tiếng Ả Rập", ngôn ngữ của ứng dụng của tôi sẽ thay đổi từ tiếng Anh sang tiếng Ả Rập. Tôi sử dụng bố cục tự động trong dự án của mình.
Khi ngôn ngữ được thay đổi, tôi mong đợi vị trí của đối tượng của tôi được nhân đôi cùng một lúc. nhưng nó không & khi tôi đóng ứng dụng và chạy lại, vị trí của đối tượng được nhân đôi chính xác.
Trong câu hỏi: How to force "Respect Language Direction" from RTL to LTR and vice versa @Raz có cùng sự cố. nhưng tôi không muốn xây dựng một câu chuyện mới. Khi ngôn ngữ được thay đổi từ En
thành Ar
và bạn thoát khỏi ứng dụng, giá trị của userInterfaceLayoutDirection
thay đổi từ UIUserInterfaceLayoutDirectionLeftToRight
thành UIUserInterfaceLayoutDirectionRightToLeft
. Tôi đã sử dụng NsLog
để xem giá trị của userInterfaceLayoutDirection
. Khi tôi nhấn nút "Ả Rập" giá trị không thay đổi, bbut khi tôi chạy một lần nữa giá trị được thay đổi. Câu hỏi của tôi là làm thế nào để ép buộc thay đổi userInterfaceLayoutDirection
mà không bỏ và không tải bảng phân cảnh mới?
như vậy. phải làm gì khi người dùng thay đổi ngôn ngữ trong cài đặt ứng dụng của tôi (không phải cài đặt ios). tôi không muốn buộc người dùng phải thoát khỏi ứng dụng của mình và chạy lại. nếu người dùng không thoát ứng dụng của tôi, hướng của ràng buộc đối với các nút và nhãn không thay đổi. và điều này không phải là trường hợp của tôi. –
Không có cách nào để làm những gì bạn đang cố gắng hoàn thành vào lúc này. – lensovet
Ngoài sự tò mò, ngôn ngữ trong ứng dụng có đang chuyển đổi thứ gì đó mà người dùng của bạn muốn không? Tại sao không phải lúc nào cũng chạy bằng ngôn ngữ trên toàn hệ thống ưu tiên? – lensovet