жест касания не отвечает при анимации высоты - PullRequest
1 голос
/ 05 февраля 2020

Я играю жестом тапки, чтобы оживить высоту 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
        }
    }
}

Спасибо !!

1 Ответ

3 голосов
/ 05 февраля 2020

if gesture.state == .changed никогда не будет правдой. Распознаватель жестов касания не имеет измененного состояния. На самом деле нет необходимости проверять его состояние вообще.

Измените это на

if mainContainerHeightConstraint.constant == 75
...