无法更改自动布局约束

时间:2017-06-01 19:28:46

标签: ios swift autolayout

我希望在textview中有字符时调整自动布局约束并重新定位。是的,我正在使用textview委托。是的,视图加载时视图可以正确布局。当我尝试调整视图大小时出现问题...我可以按照我想要的方式移动它(centerX),但是当我更改width属性时,视图会动画并消失...

这是代码......

paddingView.widthAnchor.constraint(equalTo:view.widthAnchor,multiplier:0.5).isActive = true

    NSLayoutConstraint(item: paddingView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 0.75, constant: 0).isActive = true

    paddingView.heightAnchor.constraint(equalToConstant: 6.0).isActive = true

    bottomConstraint = paddingView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0.0)
    bottomConstraint?.isActive = true

这是第二部分

func textViewDidChange(_ textView: UITextView) {

    let currentString: String = textView.text!
    let length: Int = (currentString.characters.count )

    if length > 0 {

                NSLayoutConstraint(item: paddingView, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0).isActive = true
            paddingView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.75).isActive = true





    }else{



    }

    UIView.animate(withDuration: 0.2, delay: 0, options: UIViewAnimationOptions.curveEaseOut, animations: {
        self.view.layoutIfNeeded()
    }, completion: { (completed) in

    })

}

可能是因为我一起使用锚点和NSLayoutConstraints吗?

1 个答案:

答案 0 :(得分:1)

用于调整大小:您可以通过不将固定约束设置为超级视图并使用压缩拥抱和阻力优先级来动态地增大和减小文本视图的大小。 对于重定位:在textview委托中的各个位置启用和禁用约束