2015-01-14 11 views
8

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?

Trả lời

1

Bạn thay đổi chính xác ngôn ngữ ưa thích của ứng dụng bằng các nút của mình như thế nào?

UserInterfaceLayoutDirection của ứng dụng được đặt một lần vào lúc khởi chạy. Hiện tại không có cách nào để thay đổi nó trong khi một ứng dụng đang chạy.

+0

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

+0

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

+0

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