IBDesignables的某种"全球"?

Fat*_*tie 7 ios uistoryboard nslayoutconstraint ibinspectable

在故事板中有一个UIView,具有约束例如"0.1"比例高度.

想象一下,对于许多不同场景中的视图,您有类似的约束"0.1".

假设您要将值更改为0.1到0.975.

你必须在任何地方单独改变它.

有没有办法使用@IBInspectable和/或约束来形成一种"全局价值"

这样您就可以立即更改所有内容,并在故事板中同时查看结果.

(当然,在运行时你可以在代码中传播它们.但最好在故事板上看到它.)


请注意,Wain的解决方案可以完美地运行:您可以设置一次值,并影响应用程序中的任何位置.但不幸的是,它只在运行时才这样做,你没有在故事板上看到它.

Wai*_*ain 4

我还没有尝试过,这只是在这里输入的,所以请原谅拼写错误,但我会考虑在 上创建一个扩展NSLayoutConstraint,大致如下:

let constants = [
    "bannerHeight" : CGFloat(50)
]

extension NSLayoutConstraint {
func setCommonConstant(name: String) {
    self.constant = constants[name]!
}
}
Run Code Online (Sandbox Code Playgroud)

然后在 Xcode 中使用用户定义的运行时属性,指定要使用的名称:

commonConstant, type String, value name
Run Code Online (Sandbox Code Playgroud)

因此,像这样,在故事板中任意位置的每个约束上:

在此输入图像描述