2015-07-13 106 views
0

我是多语言应用程序的新手。 我在做什么, 有两种语言的应用程序。 英文&阿拉伯语xcode中的uicontrols镜像编程

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

我有喜欢UIButton一些控件,UITextFieldUILabel等....

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

我的问题是, 为此我需要做额外的工作, 即检查设备语言,然后设置控制帧。每个视图上的 我可能具有“n”个控件,并且将两种语言的框架大小都赋予所有控件在我看来看起来不太好。

Xcode本身有什么可用的,我可以用它来做到这一点。 意味着我需要为默认语言(即英语)提供框架,并且如果我的设备语言更改为阿拉伯语,则控件框架将自动从右向左镜像。

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

接受任何帮助。

在此先感谢。 抱歉如果问题已经被提出。但我没有找到任何东西。 如果任何人发现,然后链接到是欢迎:)

enter image description here

enter image description here

回答

3

Supporting Right-to-Left Languages

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


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


更新iOS 9.0

的iOS 9带来了从右到左的语言全面的支持,这使得它更容易为您提供一个翻转的用户界面。例如:

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

: - 感谢这篇文档。但是,您可以稍微详细一点。因为我必须以编程方式和故事板两种方式使用此功能 – Sagar

+0

似乎很多UI元素都会自动反映期望本文档中提到的那些元素。 –

+0

@stallone请参阅我的iOS 9.0更新的答案 –