如何在Swift上使用函数NSLayoutConstraint.constraintsWithVisualFormat?

时间:2014-06-18 16:15:51

标签: swift

我正在尝试使用Swift并使用布局格式。 我正在使用的IDE是Xcode6-Beta2。

    var viewDictionary:Dictionary = ["myButton": myButton]

    var constraintFormat1:AnyObject[]! = 
            NSLayoutConstraint.constraintsWithVisualFormat("H:|-[myButton]-|",
        options : NSLayoutFormatOptions(0),
         metrics: nil,
           views: viewDictionary)

但是我收到了以下错误消息。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: 'Unable to parse constraint format: 
Unable to interpret '|' character, because the related view doesn't have a superview 
H:|-[myButton] 
              ^'

它不适用于swift吗?或者我写错了格式模式?

2 个答案:

答案 0 :(得分:8)

" |" (竖线)字符是指您在此情况下(直接或间接)在其内部声明的视图的超视图" myButton"。当您调用.constraintsWithVisualFormat时,它会尝试隐式查找按钮的超级视图,以便它可以在该视图和按钮之间创建约束。但是,由于您的按钮尚未添加到视图中,因此会失败。

答案 1 :(得分:0)

我有同样的问题,我查了详细信息,我没有在我的超级视图中添加子视图,所以它抱怨

" Unable to interpret '|' character, because the related view doesn't have a superview 
H:|-[yourSubView]"

确保您也调用了addSubview(youSubview)。