如何一次更改整个应用程序的文本对齐方式?

How to change the text alignment throughout the app at once?

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

将所有这些元素替换为您自己创建的精简自定义 class,您可以根据语言环境更改此 属性。

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

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

[[UILabel appearance] setTextAlignment:NSTextAlignmentRight];

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