【发布时间】:2017-09-05 05:37:19
【问题描述】:
假设我想为我的应用使用不同的字体、不同的字体大小和不同的配色方案,假设我想使用 Interface Builder。
我希望能够在一个地方设置所有这些样式,而不是说去界面生成器上的每个标签并更改其字体、颜色等。
实现这一目标的最常见方法是什么?
我知道你可以在代码中设置这些东西,但是我在 Interface Builder 中看不到变化?
我对这一切都很陌生,来自 Web 开发背景,我可能会试图将我以前的知识强加于这方面,但必须一一更改这些是维护的噩梦,我可以'似乎找不到任何简单的方法来直接在 Interface Builder 中创建自定义样式。
我能想到的唯一方法是将这些视图中的每一个子类化,例如标签、按钮等,为每个视图创建 XIB,并将它们设为@IBDesignable。这是要走的路吗?感觉这只是一些不必要的工作,对于一些简单的事情。
【问题讨论】:
-
看看 UIAppearance,因为这可能会对你有所帮助。这是一个很好的入门教程:raywenderlich.com/108766/uiappearance-tutorial。我提供了这个问题的答案作为替代方案,您可以在代码中设置样式 - 但是您需要使用 IBDesignable:stackoverflow.com/questions/35501816/…
-
@totiG,谢谢!我看过那个教程,但是当我在 UIAppearance 中进行这些更改时,IB 会自动更新吗?
-
创建自定义样式的组件,使其可设计并在 IB 中使用。使用具有逻辑名称的颜色和字体常量声明您的主题,例如borderColor,而不是darkGreenColor。尽可能使用颜色资源。
标签: ios swift xcode interface-builder