如何立即更改整个应用中的文字对齐方式?

时间:2018-05-23 11:27:51

标签: objective-c localization text-alignment

有没有办法以编程方式在整个应用程序中更改所有文本元素(即文本文件,按钮标题,标签,导航栏标题等)的对齐方式?实际上我正在开发一种多语言应用程序,它具有一种语言,其中文本对齐是RTL。我不想手动设置每个文本元素的对齐方式。有一些限制,所以NSTectAlignmentNatural无法解决我的问题。实际上,语言的翻译是通过API进行的,也是以unicode格式进行的。那么,系统将如何检测将要显示的语言,以便它可以决定对齐。

2 个答案:

答案 0 :(得分:1)

您可以使用UIAppearance在整个应用中设置ui元素的属性。这适用于采用UIAppearance协议(UILabelUIButton等)的所有类。

对于eaxmple,以下代码将更改应用中所有标签的文本对齐方式:

[[UILabel appearance] setTextAlignment:NSTextAlignmentRight];

IIRC,UINavigationBar不支持UIAppearance,这意味着您需要为标题使用自定义标签。

答案 1 :(得分:0)

使用您自己创建的瘦自定义类替换所有这些元素,您可以根据区域设置更新此属性。