在xcode中为uicontrols进行镜像编程

时间:2015-07-13 09:06:09

标签: ios objective-c xcode multilingual

我是多语言应用的新手。 我在做的是, 一个有两种语言的应用。 英语&阿拉伯

应用程序的语言取决于设备语言。 (我也希望改变这一点,应该从应用程序内部控制应用程序语言。不依赖于设备,但那是下一个问题)

我有一些控件,例如UIButtonUITextFieldUILabel等等。

当我的应用程序是英文时,我从设备的左角开始给出这些控件框架,当我的应用程序是阿拉伯语时,我从设备的右角开始给它们框架。 (因为阿拉伯语是从右到左写的)

我的问题是, 为此,我需要做额外的工作, 即检查设备语言,然后设置控制帧。 在每个视图中,我可能有“n”个控件,并且从我的角度看,两种语言的所有控件的框架大小都不合适。

Xcode本身是否有任何可用的东西可以使用我可以做到的。 意味着我需要为默认语言(即英语)提供框架,如果我的设备语言更改为阿拉伯语,则控件框架将自动从右到左镜像。

以下屏幕可能会给出一些想法。 (我为检查设备语言的所有控件使用了不同的框架)

接受任何帮助。

提前致谢。 抱歉,如果已经提出问题。但我没有找到任何东西。 如果有人找到,那么链接到欢迎:)

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

来自Supporting Right-to-Left Languages

  

显示从右向左的语言时,应镜像您的用户界面。如果使用基础国际化和自动布局,则大多数用户界面将自动为您显示镜像。除了始终从左到右的电话号码和国家/地区代码外,文本方向从右向左变为。用户界面中的某些视图和控件可能不会自动更改方向,您可以通过编程方式进行修复。

他们正在寻找的功能称为自动布局,几年前由Apple推出。它会处理你需要的很多东西,但也有很多事要做。上面的指南将指导您完成必要的步骤。

来自iOS 9.0

更新

  

iOS 9为从右到左的语言提供全面支持,使您可以更轻松地提供翻转的用户界面。例如:

     
      
  • 标准UIKit控件自动从右向左上下文翻转。
  •   
  • UIView定义了语义内容属性,可让您指定特定视图在从右到左的上下文中的显示方式。
  •   
  • UIImage添加了imageFlippedForRightToLeftLayoutDirection方法,可以在适当的时候以编程方式轻松翻转图像。   要了解有关提供翻转用户界面的更多信息,请参阅支持从右到左的语言。
  •