我正在用点击手势来动画化UIView的高度,我想要实现的是打开关闭或下拉菜单。如果我不使用if else语句,则我的点击手势有效。但反之亦然。这是我的代码。
class DailyAbsenceCell: UICollectionViewCell {
@IBOutlet weak var mainContainer: UIView!
@IBOutlet weak var calendarView: JKCalendar!
@IBOutlet weak var mainContainerHeightConstraint: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap))
mainContainer.addGestureRecognizer(tapGesture)
mainContainerHeightConstraint.constant = 75
calendarView.alpha = 0
}
@objc func handleTap(gesture: UITapGestureRecognizer) {
if gesture.state == .changed {
mainContainerHeightConstraint.constant = 370
calendarView.alpha = 1
print("Tapped")
} else {
mainContainerHeightConstraint.constant = 75
calendarView.alpha = 0
}
}
}
谢谢!
if gesture.state == .changed
将永远不会为真。轻击手势识别器没有更改的状态。实际上,根本不需要检查其状态。
将其更改为
if mainContainerHeightConstraint.constant == 75