Ios 间距填充在两个视图之间不起作用,是否存在视觉布局约束?

Ios 间距填充在两个视图之间不起作用,是否存在视觉布局约束?,ios,constraints,visual-format-language,Ios,Constraints,Visual Format Language,我想在field1和field2之间添加一个填充,它在情节提要中起作用,但我需要以编程方式进行设置,所以我尝试了这个方法,但这两个字段彼此相邻,这两个字段之间没有30的间距: 容器为绿色,字段1为橙色,字段2为蓝色: var fviews = ["field1":field1, "field2":field2, "field3":field3, "field4":field4 ] let metrics : [NSObject: AnyObject] = ["spacingV"

我想在field1和field2之间添加一个填充,它在情节提要中起作用,但我需要以编程方式进行设置,所以我尝试了这个方法,但这两个字段彼此相邻,这两个字段之间没有30的间距: 容器为绿色,字段1为橙色,字段2为蓝色:

    var fviews = ["field1":field1, "field2":field2, "field3":field3, "field4":field4 ]
    let metrics : [NSObject: AnyObject] = ["spacingV" : 30]

    //FIELD 2 
    fviews = [ "field1":field1, "field2":field2 ]
    str = "V:|[field1]-(==spacingV)-[field2]" //----> HERE, I also tried -spacingV-
    var verticalFields = NSLayoutConstraint.constraintsWithVisualFormat(str, options: nil, metrics: metrics, views: fviews)
    self.view.addConstraints(verticalFields)

    //equal height with multiplier 0.2 :
    equalHeightMult = NSLayoutConstraint(item: field2,
        attribute: NSLayoutAttribute.Height,
        relatedBy: NSLayoutRelation.Equal,
        toItem: container,
        attribute: NSLayoutAttribute.Height,
        multiplier: 0.2,
        constant: 0)
    self.view.addConstraint(equalHeightMult)

    //align X center
    centerXConstraint =
        NSLayoutConstraint(item: field2,
            attribute: NSLayoutAttribute.CenterX,
            relatedBy: NSLayoutRelation.Equal,
            toItem: container,
            attribute: NSLayoutAttribute.CenterX,
            multiplier: 1.0,
            constant: 0)
    self.view.addConstraint(centerXConstraint)

    //HORIZONTAL: equal width with multiplier 0.7 :
    equalWidthMult = NSLayoutConstraint(item: field2,
        attribute: NSLayoutAttribute.Width,
        relatedBy: NSLayoutRelation.Equal,
        toItem: container,
        attribute: NSLayoutAttribute.Width,
        multiplier: 0.7,
        constant: 0)
    self.view.addConstraint(equalWidthMult)

你应该改变

str = "V:|[field1]-(==spacingV)-[field2]"


我不知道为什么,但现在它工作了,两种语法,谢谢你的回答
str = "V:|[field1]-(spacingV)-[field2]"