我们的应用程序支持 RTL 语言,如阿拉伯语、波斯语。
iOS 9 之后,导航控制器和选项卡栏控制器的行为已更改。我只找到这个链接 ios-9-disable-support-for-right-to-left-language 来解决这个问题
我在我的
appDelegate
中编写了这段代码,它工作正常,并且导航栏和选项卡栏设置为 LTR。
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9.0")) {
[[UINavigationBar appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
[[UITabBar appearance] setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
}
但是我的问题是: 我无法更改交互式弹出手势方向。
我一直在为同样的问题苦苦挣扎,终于找到了解决方案
你只需要为navigationController.view设置SemanticContentAttribute
在rootViewController的viewDidLoad中:
[self.navigationController.view setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
[self.navigationController.navigationBar setSemanticContentAttribute:UISemanticContentAttributeForceLeftToRight];
在斯威夫特
navigationController?.view.semanticContentAttribute = .forceRightToLeft
navigationController?.navigationBar.semanticContentAttribute = .forceRightToLeft
如果您要创建自定义弹出窗口,有两种方法可以处理此问题。
在.h文件中定义一个宏,在运行时检测是否是RTL语言。
定义IS_RTL [UIApplication共享应用程序].userInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionRightToLeft
然后根据 IS_RTL.Like 创建自定义布局
if (IS_RTL)
//Do Arabic Implementation
else
//Do other language implementation
正如我所见,我也遇到了类似的问题。
在 iOS 9 及更高版本上,某些游戏开始以英语(主要语言)启动,忽略 iOS 设备上的语言设置。 如果游戏的设置中没有语言更改,那就太糟糕了。我不知道如何打开俄语,例如通过手动启动。
它仅适用于自 iOS 11 发布以来从 AppStore 下架的旧 32 位游戏(大量此类游戏,天哪)。 一些开发人员决定不调整语言设置。
有什么技巧可以让我通过 Filza/iFile 挖掘游戏文件并更改某些内容以让游戏以另一种语言运行吗?
(即使我们有一个游戏有语言更改设置,在更改俄语游戏后,例如关闭游戏并重新启动后,它仍然以英语运行)。
至少在 iOS 9 和 10 上会发生这种情况。我不知道如何解决。谢谢你。