iOS 10中的iOS阿拉伯语本地化问题

时间:2016-10-12 09:26:46

标签: objective-c localization ios10

我开发了应用程序,我需要提供两种语言英语和阿拉伯语的支持。在应用程序中有一个设置屏幕,用户可以将语言从英语更改为阿拉伯语,反之亦然。

有关详细信息,请参阅以下屏幕截图。

执行localization的代码,我已刷新storyboard以更新用户界面。

- (void)updateLanguage {

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MainNavigationController"];
    [[UIApplication sharedApplication].keyWindow setRootViewController:vc];
}

iOS 8iOS 9,它可以正常工作并更新用户界面,但在iOS 10中它不会更新用户界面。有关详细信息,请查看以下屏幕截图。

如何在iOS 10

中更新用户界面

以下是需要在iOS 10中更新的正确用户界面。

  

注意:当应用程序从后台到前台然后它   工作正常。

1 个答案:

答案 0 :(得分:1)

我找到了如何使用UISemanticContentAttribute基于语言选择更新布局的方法。

目标C

if(IS_OS_10_OR_LATER) {

    if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"Ln"] isEqualToString:@"Ar"])
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
    else
        [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
}

由于我已将当前语言选择存储在NSUserDefaults中,因此会更新布局。

SWIFT 3.0

UIView.appearance().semanticContentAttribute = .forceLeftToRight