无法找到属性

时间:2017-07-13 16:48:42

标签: ios autolayout nslayoutconstraint

我收到以下错误:

  

无法解析约束的符号常量,因为:不能   找到属性的相关边:centerX和centerX。

     

使用符号   断点   NSLayoutConstraintFailedToFindDefaultResolvedValueForSymbolicConstant   调试。

如果我在NSLayoutConstraintFailedToFindDefaultResolvedValueForSymbolicConstant处添加断点,则会在此行停止:

[self.customNavigationBar.widthAnchor constraintEqualToAnchor:self.view.widthAnchor].active = YES;

在视图控制器的viewDidLoad内调用此行。 customNavigationBar是从笔尖加载的UIView,已经作为子视图添加到self.view

如果我尝试打印我正在使用的锚点,一切似乎都可以:

(lldb) po self.customNavigationBar.widthAnchor
<NSLayoutDimension:0x17446cc80 "UIView:0x10115c160.width">

(lldb) po self.view.widthAnchor
<NSLayoutDimension:0x170667080 "UIView:0x1012ae550.width">

1 个答案:

答案 0 :(得分:4)

此错误来自您为NSLayoutConstraint选择的构造函数。

您可能有类似这样的内容:

view.topAnchor.constraint(equalToSystemSpacingBelow: otherView.centerYAnchor, multiplier: 0.25).isActive = true

但是您应该这样构造它:

let constraint = NSLayoutConstraint(item: view, attribute: .top, relatedBy: .equal, toItem: otherView, attribute: .centerY, multiplier: 0.25, constant: 1)

constraint.isActive = true