【发布时间】:2017-07-23 00:21:56
【问题描述】:
我正在尝试使用点击信息按钮后打开的 infoView。见图片:
我希望 infoView 与按下的按钮垂直对齐。 我有一个 UIbutton 集合。 这是我的代码:
@IBOutlet var infoButtons: [UIButton]!
@IBAction func infoButtonPressed(_ sender: UIButton) {
var alignYConstraint = NSLayoutConstraint()
switch sender.tag {
case 1:
alignYConstraint = NSLayoutConstraint(item: infoView, attribute: .centerY, relatedBy: .equal, toItem: infoButtons[0], attribute: .centerY, multiplier: 1.0, constant: 0)
NSLayoutConstraint.activate([alignYConstraint])
infoView.isHidden = false
infoView.textView.text = "Text goes here"
infoView.onClickCallback = {
self.infoView.isHidden = true
// self.infoView.removeFromSuperview()
NSLayoutConstraint.deactivate([alignYConstraint])
}
case 2:
alignYConstraint = NSLayoutConstraint(item: infoView, attribute: .centerY, relatedBy: .equal, toItem: infoButtons[1], attribute: .centerY, multiplier: 1.0, constant: 0)
NSLayoutConstraint.activate([alignYConstraint])
infoView.isHidden = false
infoView.textView.text = "Different text"
infoView.onClickCallback = {
self.infoView.isHidden = true
NSLayoutConstraint.deactivate([alignYConstraint])
}
....................
}
}
我有两个问题:
1) 如果我单击关闭按钮,一切正常,但如果我在关闭 infoView 之前单击另一个信息按钮,那么我有冲突的约束,并且视图不会按要求对齐。我已经尝试删除之前的约束......但显然我无法成功。
2) 我正在尝试关闭 infoView,即使我点击 infoView 之外的任何位置,但这里也存在同样的问题:约束冲突并且视图不会与正确的按钮对齐
感谢您的帮助。
【问题讨论】:
标签: swift autolayout constraints