想要根据

时间:2015-10-17 06:23:44

标签: ios objective-c localization internationalization right-to-left

我想构建一个iOS应用程序,它可以处理多种语言,如英语和阿拉伯语。 此语言更改设置将在我的应用程序中。(不依赖于设备语言)。现在,当用户从应用程序设置更改语言时,应根据语言从LTR或RTL更新屏幕UI。 我不想拍两个故事板或重启我的应用程序。

现在我正在使用Base国际化并使用AutoLayout来设计整个UI。(不使用左或右约束) 并在NSUserDefaults中设置所选语言。

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

此代码有效,但为此我必须重新启动我的应用程序。有没有更好的方法来做到这一点。我的目标是iOS 7及更高版本的设备。

1 个答案:

答案 0 :(得分:0)

您是否看过NSLayoutConstraint的“trailingAnchor”和“leadingAnchor”?它们类似于“leftAnchor”和“rightAnchor”,但它们不是绝对的,而是取决于当前的语言。因此,如果您使用这些约束而不是左/右,iOS应该能够帮助您完成一些工作,因为它识别左右读取语言之间的差异,并反映了前导/尾随约束锚点