如何更改用户界面布局方向(UI布局方向)

11

我有一个支持两种语言的应用程序,英语和阿拉伯语。 英语从左到右,阿拉伯语从右到左。

我有一个名为LanguageViewController的控制器。 它里面有两个按钮:阿拉伯语和英语。 当用户点击“阿拉伯语”时,我的应用程序的语言会从英语更改为阿拉伯语。 我在项目中使用自动布局。

当语言更改时,我希望对象的位置同时被镜像。 但它没有,当我关闭我的应用程序并再次运行时,对象的位置被正确地镜像。

在问题如何强制从RTL到LTR以及反之互相尊重语言方向中,@Raz遇到了同样的问题。 但我不想构建新的storyboard。 当将语言从En更改为Ar并退出应用程序时,userInterfaceLayoutDirection的值从UIUserInterfaceLayoutDirectionLeftToRight更改为UIUserInterfaceLayoutDirectionRightToLeft。 我使用NsLog查看userInterfaceLayoutDirection的值。 当我按下“阿拉伯语”按钮时,值不会更改,但是当我再次运行时,值会更改。 我的问题是如何强制更改userInterfaceLayoutDirection而不退出或加载新的storyboard?

1个回答

1
你是如何通过按钮更改应用程序的首选语言的?
应用程序的userInterfaceLayoutDirection在启动时设置。目前没有办法在应用程序运行时更改它。

那么,当用户在我的应用程序设置中更改语言时该怎么办(而不是iOS设置)?我不想强制用户退出我的应用程序并重新运行。如果用户不退出我的应用程序,则按钮和标签的约束方向不会更改。这不是我的情况。 - amin akbarzade
目前没有办法实现你想要完成的任务。 - lensovet
出于好奇,您的用户是否需要应用内语言切换?为什么不始终使用首选的系统范围语言? - lensovet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接