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应该能够帮助您完成一些工作,因为它可以识别左侧和右侧阅读语言之间的差异,并通过前导/尾随约束锚来反映这一点。

相关问题