动画高度时轻击手势无响应

问题描述 投票:1回答:1

我正在用点击手势来动画化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
        }
    }
}

谢谢!

swift uicollectionview uicollectionviewcell uigesturerecognizer uitapgesturerecognizer
1个回答
3
投票

if gesture.state == .changed将永远不会为真。轻击手势识别器没有更改的状态。实际上,根本不需要检查其状态。

将其更改为

if mainContainerHeightConstraint.constant == 75
© www.soinside.com 2019 - 2024. All rights reserved.