如何更改所有故事板中所有UILabel的textAlignment

时间:2015-06-03 15:05:05

标签: ios xcode localization storyboard uilabel

如何将所有故事板中所有UILabel的textAlignment属性设置为NSTextAlignmentNatural

我们的应用程序有许多故事板和xib文件,有许多屏幕和UILabel。为了本地化RTL语言(希伯来语,阿拉伯语),textAlignment属性需要NSTextAlignmentNatural而不是左对齐。

Xcode 6.3.2故事板编辑仅支持设置左对齐,居中对齐或右对齐,因此不能选择。它必须在某处的代码中完成。一种解决方案是遍历viewDidLoad中的视图层次结构并修复所有UILabels,但是有很多视图控制器。有没有办法在一个适用于所有视图控制器的地方覆盖或补充viewDidLoad?方法调配不是我们想要使用的选项。还有其他办法吗?

我能看到的唯一解决方案(除了调配或修改所有viewDidLoad方法之外)是子类UIViewController,将代码添加到viewDidLoad,然后更改所有VC&#39}成为其中的一个子类。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我想到了一个解决方案,我不能完全确定它是否可行,但我想与您分享。
您可以创建UILabel的子类并创建符合UIAppereance协议的新属性,此属性将设置文本对齐方。 也许一个类别就足够了 使用Appereance代理可以扩展自定义应用程序,当然您需要将UILabel更改为新的自定义类,但如果没有以编程方式创建标签,您可以使用简单的方法执行“查找和替换”故事板上的文本编辑器xib 检查herehere,了解如何使方法符合上诉代理。