将iOS应用翻转到RTL

时间:2018-04-19 08:26:54

标签: ios objective-c

我使用iOS制作了constraints个应用,并希望为localizationarabic支持添加RTL。通过按下按钮它应该翻转,现在我得到的大多数结果是以编程方式翻转或从应用程序外部更改语言。

我正在使用Objective-C

2 个答案:

答案 0 :(得分:0)

对于Swift 4,你可以这样做:

loggerService.log('something')

OHLanguage是一个处理设置应用程序语言并从Userdefaults获取当前应用程序语言的类。

答案 1 :(得分:0)

在这里你可以使用Objective-C来做到这一点: 您可以强制您的UIView将SemanticContentAttribute设置为UISemanticContentAttributeForceRightToLeft。

例如:

if ([LanguageManager isCurrentLanguageRTL]) {
        if ([[[UIView alloc] init] respondsToSelector:@selector(setSemanticContentAttribute:)]) {
            [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
            [[UITableView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceRightToLeft];
        }
    }else {
        if ([[[UIView alloc] init] respondsToSelector:@selector(setSemanticContentAttribute:)]) {
            [[UIView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
            [[UITableView appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
        }
    }

然后使用以下方式重新加载Storyboard:

AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    NSString *storyboardName = @"Main";
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
    delegate.window.rootViewController = [storyboard instantiateInitialViewController];

您也可以查看https://github.com/maximbilan/ios_language_manager