使用UITextView以编程方式在UIView中添加约束

时间:2015-10-12 03:47:22

标签: swift autolayout uitextview

我在UITextView中以编程方式添加了约束,但是尾部和底部约束无法正常工作。其他人工作正常。 我认为UITextView框架大小不正确。

我只想以编程方式在我的UITextView中添加边距。

我的代码是

    let textView = UITextView()
    self.view.addSubview(textView)

    var constraints = [NSLayoutConstraint]()

    constraintTop = NSLayoutConstraint(item: textView,
        attribute: NSLayoutAttribute.Top,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Top,
        multiplier: 1.0,
        constant: 10)
    constraints.append(constraintTop)

    constraintBottom = NSLayoutConstraint(item: textView,
        attribute: NSLayoutAttribute.Bottom,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Bottom,
        multiplier: 1.0,
        constant: 10)
    constraints.append(constraintBottom)

    constraintLeft = NSLayoutConstraint(item: textView,
        attribute: NSLayoutAttribute.Leading,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Leading,
        multiplier: 1.0,
        constant: 10)
    constraints.append(constraintLeft)

    constraintRight = NSLayoutConstraint(item: textView,
        attribute: NSLayoutAttribute.Trailing,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Trailing,
        multiplier: 1.0,
        constant: 10)
    constraints.append(constraintRight)

    self.view.addConstraints(constraints)

1 个答案:

答案 0 :(得分:2)

您可以通过以下两种方式之一解决此问题:

  1. constant更改为-10以获取底部和尾随约束。
    1. 在底部和尾随约束中切换item:toItem:值的顺序。也就是说,为底部和尾部约束设置item: self.viewtoItem: textView。如果在StoryBoard中设置约束,则执行此操作。