3

这是一个有趣的问题:

我们正在重新设计整个应用程序,其中包含超过 100,000 行代码和近 100 个 XIB 文件。新设计要求(几乎)应用程序中的每个标签都使用新的自定义字体,而旧应用程序使用 Helvetica Neue 的默认字体。

尽可能多地更改 UILabel 的最有效方法是什么?我们不想手动更改代码和 XIB 中的数千个标签(这尤其困难,因为我们使用的是非系统字体)。

我们已经讨论了将 UILabel 的创建方法调整为默认使用新的自定义字体,这仍然允许在创建后自定义 Helvetica Neue 中保留的少数标签。

想法?

4

3 回答 3

3

看看 NUI https://github.com/tombenner/nui。您可以使用类似 CSS 的样式表自定义很多控件,并通过子类或类别实现它。

于 2013-01-02T20:44:52.033 回答
2

您可能应该继承 UILabel 并覆盖init您选择的方法,或者awakeFromNib,并在那里设置自定义字体。然后你可以xib手动浏览,或者在文本编辑器中打开它并添加一行

<string key="X.CustomClassName">YourCustomLabelClass</string>

将指定的标签设置为您的自定义标签类。

于 2013-01-02T20:27:01.787 回答
0

Swizzling 是一个不错的选择。如果您想以其他方式执行此操作并且遇到自定义字体问题,我通常会创建一个简单的 UILabel 子类,它会在 awakeFromNib 中为每种自定义字体更改它的字体,以便我可以在界面构建器中布置它们。

但是......我想到了:[[UILabel 外观] setFont:xxx];

不过,我不确定您将如何处理保持大小。也许 swizzle 是最好的选择

于 2013-01-02T20:24:38.980 回答