Autolayout:标签的y位置是superview的宽度

时间:2015-06-18 08:37:32

标签: ios swift autolayout

例 - 如果在iphone 5(分辨率320x568)上,标签应放在320(y位置)

4 个答案:

答案 0 :(得分:0)

您必须将Top Constraint定义为320 px。

使用代码 -

[self.button addConstraint:[NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeTop relatedBy:0 toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:320]];

故事板here

中的Autolayout

答案 1 :(得分:0)

在快速语言中,你可以像那样使用它

let leftConstraint = NSLayoutConstraint(item: self.label, 
                                   attribute: .Top, 
                                   relatedBy: 0,
                                      toItem: self.view,
                                   attribute: .Top, 
                                  multiplier: 1.0, 
                                    constant: 320.0);

self.view.addConstraint(leftConstraint);

答案 2 :(得分:0)

以这种方式添加约束标签:

如果你想以编程方式使用它,你就可以这样做

override func viewDidLoad() {
    super.viewDidLoad()

    let label  = UILabel()
    label.backgroundColor = UIColor.redColor()
    label.textAlignment = NSTextAlignment.Center
    label.text = "I'am a test label"
    label.setTranslatesAutoresizingMaskIntoConstraints(false)
    view.addSubview(label)

    let horizontalConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.TrailingMargin, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.TrailingMargin, multiplier: 1, constant: 16)
    view.addConstraint(horizontalConstraint)

    let verticalConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: topLayoutGuide, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 50)
    view.addConstraint(verticalConstraint)

    let widthConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 150)
    label.addConstraint(widthConstraint)


    let heightConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 20)
    label.addConstraint(heightConstraint)
}

如果你不想以编程方式设置它,你可以这样做:

从storyBoard中选择您的标签转到图钉菜单并将此约束添加到它,如下图所示:

enter image description here

如果您希望标签位于视图的最大位置,则必须将右侧设置为0.

希望它会有所帮助。

答案 3 :(得分:0)

这在代码中很容易实现。您可以添加约束并将其constant设置为UIScreen.mainScreen().size.width

使用Interface Builder,我首先添加一个帮助器视图,将其顶部,左侧和右侧约束设置为0,并将其方面约束设置为1:1。这意味着在宽度为320的屏幕上,视图框架为(0, 0, 320, 320)

现在,您可以根据帮助程序视图的底部定位视图。