如何在nib/xib中设置UIView以在运行时获得不同的背景颜色,但不是接口生成器

问题描述:

我在xib/nib文件中构建可重复使用的视图,我有一些视图需要在运行时渲染.clear,但..我的超级视角会呈现这些笔尖是黑暗的,因此当我设计这些笔尖时,他们有一个白色背景,很难在这些视图上看到我的文字和其他控件。如何在nib/xib中设置UIView以在运行时获得不同的背景颜色,但不是接口生成器

另一方面,是否有可能在界面生成器中使用背景颜色黑色,并且在运行时它们是否清晰?

您可以在视图控制器的故事板中的检查器上添加User defined Runtime attribute以在运行时调整背景颜色。

User Defined Runtime Attributes screenshot

注:关键路径是backgroundColor

或者只设置的backgroundColor在awakeFromNib()。这个函数get在调用nib之后调用。

override func awakeFromNib() { 
    super.awakeFromNib() 

    backgroundColor = .blue 
} 
+0

太棒了。谢谢。用户定义的运行时属性正是我所需要的。 –

+0

我不能使用awakeFromNib()函数来做到这一点,因为我有一个@IBDesignable类,它也加载了我在界面生成器中的awakeFromNib()函数中放置的任何东西,并且我的视图再次变得透明,我也遇到了同样的问题。 –