iOS 应用程序不会更改为 RTL 语言

Posted

技术标签:

【中文标题】iOS 应用程序不会更改为 RTL 语言【英文标题】:iOS app does not change to RTL language 【发布时间】:2017-08-28 09:31:57 【问题描述】:

我想在设备上以从右到左的布局测试我的 ios 应用。当我在 Xcode 中设置“Edit Scheme > Application Language > Right-To-Left Pseudo Language”并在设备上运行时,布局被翻转为 RTL。但是,如果我在 Xcode 中保留“系统语言”,然后在 iPhone 设置中将系统语言更改为希伯来语(常规 > 语言和地区 > iPhone 语言 > 希伯来语),我的应用程序不会以 RTL 模式显示(所有其他应用程序都会)。

当我将 iPhone 的语言更改为希伯来语时,为什么我的应用布局没有更改为 RTL?

我使用的是 Xcode 8.3。

【问题讨论】:

【参考方案1】:

我发现了问题所在。我需要在 Project > Info 部分添加希伯来语国际化。我在设备上重新运行后,所有布局都出现了翻转(即从右到左的布局)。

【讨论】:

@Evgenii 还有其他技巧吗?我在 Xcode 9.2 中尝试了您的建议,但仍然遇到此问题。【参考方案2】:

如果是文本对齐请尝试以下方法

首先尝试获取布局方向

if ([UIView userInterfaceLayoutDirectionForSemanticContentAttribute:view.semanticContentAttribute] == UIUserInterfaceLayoutDirectionRightToLeft) 


然后如下设置文本对齐方式。

enter code here
[[(NSMutableParagraphStyle *)paraStyle setAlignment:NSNaturalTextAlignment];

【讨论】:

以上是关于iOS 应用程序不会更改为 RTL 语言的主要内容,如果未能解决你的问题,请参考以下文章

Android:以编程方式更改整个应用布局方向

将 ag-grid 的方向更改为 RTL

如何将菜单的方向更改为 rtl ionic2?

更改 iOS 应用本地化运行时间

ios 7 - 强制视图布局翻转到 RTL 而无需更改语言

RTL和LTR抽屉根据用户语言在它们之间进行导航切换