Ios 脚本共享约束的常量

Ios 脚本共享约束的常量,ios,autolayout,uistoryboard,ios-autolayout,Ios,Autolayout,Uistoryboard,Ios Autolayout,有没有办法在情节提要中的约束之间共享常量,或者更好地全局定义它们,并在需要时使用它们 比如说,我希望从顶部到左侧的距离等于从左侧到顶部的距离-通过设置任何类型的对称都无法实现这些,我不想每次都更改这两个,只需更改一个即可看到结果 我想要一个故事板可点击的解决方案,无需编码。没有更多信息很难说,但我认为最好的解决方案是将UIView子类化,如下所示: SWIFT 4.0 或者以类似的方式对约束本身进行子类化。好吧,您不能在故事板中使用定义的常量,但可以共享属性。根据您的设计有多复杂,可能不值得费心

有没有办法在情节提要中的约束之间共享常量,或者更好地全局定义它们,并在需要时使用它们

比如说,我希望从顶部到左侧的距离等于从左侧到顶部的距离-通过设置任何类型的对称都无法实现这些,我不想每次都更改这两个,只需更改一个即可看到结果


我想要一个故事板可点击的解决方案,无需编码。

没有更多信息很难说,但我认为最好的解决方案是将UIView子类化,如下所示:

SWIFT 4.0


或者以类似的方式对约束本身进行子类化。

好吧,您不能在故事板中使用定义的常量,但可以共享属性。根据您的设计有多复杂,可能不值得费心。如果您只是希望两个项目之间共享相同的距离,则最好编辑它们的值。如果有多个依赖项,则可以创建共享相同大小的垫片

这很简单,只需将两个或更多隐藏的UIView对象添加到情节提要中即可。选择一个作为主项目,然后将其他项目设置为具有该项目的大小属性。主控形状可以设置为比例为1:1,因此您只需设置和更改主控形状的高度即可在X和Y方向调整所有主控形状的大小。然后,您可以将其他项目与这些对象对齐

还请注意,对于乘数,可以使用1:1以外的其他值

另一个注意事项:如果您只想定位一个视图,一个这样的隐藏视图就足够了


请更具体地说明您的要求。已编辑。当向下投票时,请说明原因-否则我不会从这个过程中学到任何东西。你能给我们展示一个你尝试过的例子,以及为什么这不起作用吗?到目前为止,我只是浏览了XCode UI,因为我想要一个XIB解决方案,而不是编写任何新类,因为我想要一些通用的东西,当然我浏览了谷歌,而且浏览范围很广,但在我看来,SO并不是寻找iOS答案的最佳地方。更好的是,我可以只使用一个隐藏视图并改变其宽度。这仍然很有启发性,因为我不知道如果我理解正确的话,约束是不可能共享属性的。你介意相应地编辑你的问题吗,这样我就可以接受了?我不确定我是否理解。你想让我改变什么?啊。。。再一次从我这边说得不够清楚,对不起-我的意思是编辑你的问题,但你也可以这样做。如你所愿,谢谢。我只是添加了我想要的最简单的案例描述,虽然我知道在你写答案的时候我没有具体说明,但它并不是真正的通用和一般
class MySymmetricView {
    @IBInspectable var inset: Float = 10.0 // Put your constraints here, @IBInspectable will expose them to IB, you can also set your constants here

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        setupConstraints()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        setupConstraints()
    }

    func setupConstraints() {
         NSLayoutConstraint(item: self, attribute: .leading, relatedBy: .equal, toItem: superview, attribute: .leadingMargin, multiplier: 1.0, constant: inset).isActive = true
         NSLayoutConstraint(item: self, attribute: .top, relatedBy: .equal, toItem: superview, attribute: .leadingMargin, multiplier: 1.0, constant: inset).isActive = true
    }

}