是否可以在 .xib 文件中使用对颜色的引用而不是颜色?

Posted

技术标签:

【中文标题】是否可以在 .xib 文件中使用对颜色的引用而不是颜色?【英文标题】:Is it possible to use references to colors instead of colors in .xib files? 【发布时间】:2012-11-07 08:46:39 【问题描述】:

在开发 iPhone 应用程序时,我需要为各种客户端创建该应用程序的“副本”,其中包括更改应用程序文本、背景的所有颜色......

我想知道是否可以将颜色存储在以下位置:

文本-> #fffffff secondaryText -> #808080 背景 -> #707070 ...

然后在 xib 文件中使用这些引用而不是实际的颜色值。我想这样做是为了避免复制 xib 文件并使它们无法维护。 这个想法类似于 android 的资源,例如您可以在其中使用“@color/text”

【问题讨论】:

您可以以编程方式设置颜色值。我认为 IBOutlet 可以帮助您。 【参考方案1】:

您希望将单个应用程序提供给具有不同外观和感觉的三个客户。但在功能上它们是相同的。对吧?

那么你可以为三个客户端拥有 3 个 xib 文件 ma​​inView_first.xib、mainView_second.xib、mainView_third.xib。将它们的插座连接到单个 .h 文件 (mainView.h)。 您可以在这些 xib 文件中进行自己的自定义。 你可以像这样加载文件

mainView *main=[[mainView alloc]initWithnibName:@"nameofthexibfile"];

【讨论】:

不完全是,我想使用相同的 xib 文件,但不是直接指定颜色,而是告诉 xib 在 plist、xml 或其他任何内容中查找颜色。类似于 android 使用 color.xml 和 "@color/dark-text"【参考方案2】:

您可以通过编程方式实现这一点 -

一个。创建一个 color.plist 文件,在其中存储您要使用的所有颜色名称和值。

b.然后创建一个颜色工具类,该类具有转换UIColor对象中这些值的方法。

c。在您的应用中使用这些方法来设置背景颜色、标签颜色等。

【讨论】:

我现在正在这样做,但我认为它添加了太多应该在 xib 中的代码......

以上是关于是否可以在 .xib 文件中使用对颜色的引用而不是颜色?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 xib 或情节提要对 UITableViewController 进行子类化?

如何在 Xcode 中为 XIB 文件设置默认色调?

如何在 xib 的 xml 文件的 NSRGB 标签中编码十六进制颜色?

如果 UITableViews 在自己的 xib 文件中而不是 Storyboard 中,它们可以具有静态内容吗?

iOS - 从 XIB 文件中引用和以编程方式移动视图

XIB 中的 UILabel 字体大小不会改变,而颜色会改变