objective-c - 如何一次更改整个应用程序的文本对齐方式?
问题描述
有没有办法以编程方式一次更改整个应用程序中所有文本元素(即文本文件、按钮标题、标签、导航栏标题等)的对齐方式?实际上,我正在开发一个多语言应用程序,该应用程序具有一种文本对齐方式为 RTL 的语言。我不想手动设置每个文本元素的对齐方式。有一些限制,所以 NSTectAlignmentNatural 无法解决我的问题。实际上,语言的翻译是通过 API 和 unicode 格式进行的。那么,系统将如何检测将要显示的语言,以便它可以决定对齐方式。
解决方案
您可以使用UIAppearance
在整个应用程序中设置 ui 元素的属性。这将适用于所有采用UIAppearance
协议(UILabel
,UIButton
等)的类。
例如,以下代码将更改应用中所有标签的文本对齐方式:
[[UILabel appearance] setTextAlignment:NSTextAlignmentRight];
IIRCUINavigationBar
不支持UIAppearance
,这意味着您需要为标题使用自定义标签。
推荐阅读
- c# - Unity - scale UI element based on closeness to a target?
- r - 根据每行中的缺失值选择列
- python - Why is etree returning nothing from my SVG when I run `for glyph in font.iter('glyph')`?
- angular-material - 角材料单选按钮组 - 屏幕阅读器无法正确阅读
- python - Google EdgeTPU 无法让 PWM 与 Python 一起使用
- c - 从文件中填充结构数组
- java - Null point error in Array when trying to give Buttons in array a color
- powershell - How to access embedded objects and?
- jmeter - jmeter中的定时器
- visual-studio-code - VSCode (OSX) replacing whitespace with %20 in href upon save