让我们假设我想创建一个标记为IBDesignable的自定义UI类,以便我可以在故事板中使用它,是否可以覆盖默认值的默认属性,但仍然允许它在故事板中被覆盖?更改在界面构建器/故事板中仍然可以覆盖的默认属性的默认值
例如,如果我想创建一个自定义的UILabel,我可以重写它的默认backgroundColor为红色,这样每次我将它添加到故事板中的视图时,默认情况下它将具有红色背景颜色(而不是默认值它通常具有白色),但是如果我将故事板中的其他颜色更改为其他颜色,它将保持这种新颜色。
我知道我可以添加一个特定的IBInspectable属性作为backgroundColor的代理,但这并不是最优的,因为那会让我在控制同一事物(backgroundColor)的对象上留下两个属性。
那么有没有人知道一种方法来做到这一点?
这似乎确实起作用,虽然我得到了有关初始化的警告,并不保证被Swift调用,所以它可能不是一个面向未来的解决方案。但更糟糕的是,它也没有在故事板中显示新的默认颜色,这就是为什么我想要这件事的原因 – SveinnV
对不起,我不知道如何指示界面生成器来获取默认颜色,但也许这是可能的......至于'initialize',你说得对,这是一个Objective-C的东西,它可能在Swift中有不同的表现。试着把这个调用放在'application(_:didFinishLaunchingWithOptions)'中,如果这太迟了,把它放到'AppDelegate'初始化程序中 – deadbeef
@SveinnV查看我的编辑 – deadbeef