【问题标题】:How to change the text alignment throughout the app at once?如何一次更改整个应用程序的文本对齐方式?
【发布时间】:2018-11-02 09:01:11
【问题描述】:

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

【问题讨论】:

  • 您打算本地化应用程序吗?你不能用NSTextAlignmentNatural吗?
  • @Willeke 有一些限制,所以 NSTectAlignmentNatural 无法解决我的问题。实际上,语言的翻译是通过 API 和 unicode 格式进行的。那么,系统将如何检测将要显示的语言以便决定对齐方式。
  • 将此信息添加到问题中。
  • @Willeke 添加..谢谢

标签: objective-c localization text-alignment


【解决方案1】:

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

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

[[UILabel appearance] setTextAlignment:NSTextAlignmentRight];

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

【讨论】:

    【解决方案2】:

    将所有这些元素替换为您自己创建的薄自定义类,您可以将其连接起来以根据语言环境更改此属性。

    【讨论】:

    • 这又归结为手动处理每个元素。我想知道苹果是否提供了任何标准方法来做到这一点。
    猜你喜欢
    • 2012-12-25
    • 2016-05-28
    • 2011-04-06
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多