iOS-如何从右到左设置情节提要/界面构建器预览?

Rav*_*avi 5 iphone xcode localization storyboard ios

我正在开发一个支持两种语言的应用程序,即英语和阿拉伯语。我几乎完成了所有任务,即在应用程序中本地化+处理UI LTR(英语),RTL(阿拉伯语)。

现在,我想在情节提要中查看RTL中的UI预览。默认情况下为LTR。

到目前为止,我所做的是:

+(void)initialize {
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *current = [languages objectAtIndex:0];
[self setLanguage:current];
Run Code Online (Sandbox Code Playgroud)

}

+(void)setLanguage:(NSString *)l {
NSLog(@"\n\n\t ***** Hint Lang. selected by user: %@   ****\n\n", l);
NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ];
bundle = [NSBundle bundleWithPath:path];
Run Code Online (Sandbox Code Playgroud)

}

+(NSString *)get:(NSString *)key alter:(NSString *)alternate {
return [bundle localizedStringForKey:key value:alternate table:nil];;
Run Code Online (Sandbox Code Playgroud)

}

用于处理UI LTR或RTL。例如,当用户选择英语时,我将UI设置为

[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight; 
Run Code Online (Sandbox Code Playgroud)

当用户选择阿拉伯语时,我将UI设置为

[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
Run Code Online (Sandbox Code Playgroud)

但是我必须检查所有内容,然后运行应用程序iPhone UI屏幕,无论对于LTR还是RTL都适用。

有什么方法可以让我们在情节提要中以RTL形式查看预览UI(无需在iPhone /模拟器中运行)。任何建议都会很棒!提前致谢!!

Her*_*rno 1

我发现了一种在编辑 Storyboard/xib 时快速预览 RTL 布局的有用方法,但仅限于一个视图(如UIView父容器)。这不是一个好方法,但可以节省您一些时间并且不需要运行应用程序。

在编辑器中,您可以选择任何视图,然后在检查器中将Semantic属性更改为Force Right to Left。这将以 RTL 方式预览所选视图的布局。

这只是测试单个容器或控件的快速方法,主要缺点是要在 RTL 中预览整个布局(包括子视图),您需要逐一更改此属性。