我有UILabel
,我在tapGesture
上显示和隐藏它。我已经通过编程创建了标签,并且只通过编程设置了约束。
默认情况下,在tapGesture方法上使用heightConstraint = 230
时UILabel可见我正确地制作了heightConstraint = 0
及其隐藏标签。再次在tapGesture上,我需要显示标签,因此当我再次点击时,我可以再次看到heightConstraint = 230
,但在UI中看不到标签。
可能的问题是,只有隐藏起作用,显示不起作用。
下面是tapGesture方法的代码,我在其中设置高度约束。
@objc func tapLabel(gesture: UITapGestureRecognizer) {
print("tap working")
isExpanded.toggle()
if(isExpanded){
NSLayoutConstraint.activate([
reminderBulletsLbl.heightAnchor.constraint(equalToConstant: 230)
])
}else{
NSLayoutConstraint.activate([
reminderBulletsLbl.heightAnchor.constraint(equalToConstant: 0)
])
}
}
我尝试取消激活约束,但不起作用。
请查看随附的屏幕截图。
1.看到标签时的默认状态
1.单击时,标签隐藏。
现在再次点击后,标签未显示。
先谢了。
1条答案
按热度按时间tkqqtvp11#
单击时,此行为将添加更多约束
并会造成他们之间的价值观冲突,你需要
在
viewDidLoad
中设置初始状态然后在click动作中使用常量属性