0

我想要構建一個處理多種語言(如英語和阿拉伯語)的iOS應用程序。 此語言更改設置將在我的應用程序中使用(不依賴於設備語言)。現在,當用戶從應用程序設置中更改語言時,應根據語言從LTR或RTL更新屏幕UI。 我不想拍兩個故事板或重新啓動我的應用程序。想要根據那個從右到左和從左到右的語言和UI來構建iOS應用程序

現在我正在使用Base國際化並使用AutoLayout來設計整個用戶界面(無需使用左或右限制) 並將所選語言設置爲NSUserDefaults。

NSArray* language = [NSArray arrayWithObjects:MY_SELECTED_LANG, nil]; [[NSUserDefaults standardUserDefaults] setObject:language forKey:@"AppleLanguages"];

此代碼的工作,但對於我不得不重新啓動我的應用程序。有沒有更好的方法來做到這一點。我針對iOS 7及更高版本的設備。

+0

您不應該擁有應用內語言切換器,因爲長遠來看,您會遇到其他幾個問題。除非您想爲用戶提供令人困惑的體驗,否則您應該始終回到系統語言。 – wakachamo

+1

@wakachamo。謝謝,現在我打算不使用應用內語言切換器。這將取決於設備的語言。 –

+0

@Sayakiss哪個職位?我可以鏈接嗎? –

回答

0

你看過NSLayoutConstraint的「trailingAnchor」和「leadingAnchor」嗎?它們與「leftAnchor」和「rightAnchor」類似,但它們不是絕對的,取決於當前的語言。因此,如果您使用這些約束而不是左/右,iOS應該能夠幫助您完成一些工作,因爲它可以識別左側和右側閱讀語言之間的差異,並通過前導/尾隨約束錨來反映這一點。

相關問題