我在viewcontroller的中心有一个UITextField
(searchField),我使用UIView
(liveView)创建一条细线。我以编程方式创建lineView及其约束。 lineView本质上是一个下划线,当用户键入时,下划线在textField下面的宽度增长。一旦用户按下回车键,我就会调整约束,以便文本字段和视图移动到viewcontroller的顶部。我得到了这个工作,但随着lineView向上移动,它开始淡出并消失。不知道为什么会这样。
func moveUp(){
verticalConstraint = NSLayoutConstraint(item: lineView!, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: searchField, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 6)
lineView!.translatesAutoresizingMaskIntoConstraints = false
let xConstraint = NSLayoutConstraint(item: lineView!, attribute: .centerX, relatedBy: .equal, toItem: searchField, attribute: .centerX, multiplier: 1, constant: 0)
let widthConstraint = NSLayoutConstraint(item: lineView!, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: (lineView?.frame.size.width)!)
view.addConstraints([verticalConstraint!, xConstraint, widthConstraint])
searchBarTopConstraint.constant = 0
UIView.animate(withDuration: 2.00, delay: 0.0, options: [], animations: {
self.view.layoutIfNeeded()
}, completion: { (finished: Bool) in
})
}
当我签出视图层次结构时,视图无处可寻。
答案 0 :(得分:0)
经过大量调试后,我决定增加视图的大小,以便更好地了解正在发生的事情。很明显,高度正在缩小。我所要做的就是设置一个高度限制,一切正常。
let heightConstraint = NSLayoutConstraint(item: lineView!, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: (lineView?.frame.size.height)!)