无法通过id找到约束

问题描述 投票:0回答:1

我有一个Center X Alignment Constraint按钮,这个约束的identifier"constBtnSound"

我试图用以下代码获取此constraint但无法找到它。

for const in btnSound.constraints {
  if const.identifier == "constBtnSound" {
        ...
    }
}

约束的属性:

enter image description here

按钮的所有约束:

enter image description here

swift uiview nslayoutconstraint
1个回答
1
投票

这是the UIView.addConstraint documentation所说的:

约束必须仅涉及接收视图范围内的视图。具体而言,涉及的任何视图必须是接收视图本身或接收视图的子视图。

由于button.superview不是button并且不是button的子视图,因此button不能保留约束。

由于buttonbutton.superview的子视图,因此约束可以由button.superview(或button.superview的任何祖先)保留。

但是,您可以为它创建一个插座,而不是按ID搜索约束:

@IBOutlet var buttonXCenterConstraint: NSLayoutConstraint!

将插座连接到故事板中的约束。

© www.soinside.com 2019 - 2024. All rights reserved.