【问题标题】:tap gesture not responding while animating height动画高度时点击手势没有响应
【发布时间】:2020-02-05 13:14:57
【问题描述】:

我正在使用点击手势来动画 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】:

if gesture.state == .changed 永远不会是真的。点击手势识别器没有改变状态。实际上根本不需要检查它的状态。

把这个改成

if mainContainerHeightConstraint.constant == 75

【讨论】:

  • 嘿,谢谢它有效@matt 我一直对点击手势感到困惑,因为我知道它上面有用户交互。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 1970-01-01
  • 2016-06-30
相关资源
最近更新 更多