问题描述
我有这个视图 -'card'- 带有 UIPanrecognizer 和一个附加到它的操作。
按预期工作。
这是操作代码:
@IBAction func swipe(_ sender: UIPanGestureRecognizer) {
let card = sender.view!
let point = sender.translation(in: view)
card.center = CGPoint(x: view.center.x + point.x,y: view.center.y + point.y)
if sender.state == .ended{
print("dropped")
UIView.animate(withDuration: 0.2,animations: {card.center = self.view.center})
}
}
但是,我的视图有几个子视图。
如果我在其中一个子视图上开始平移手势,该手势经常会出现错误行为。
我观察到的不当行为是,当我在视图周围拖动时,当在子视图上启动手势时,视图不会始终跟随我的手指,而是跳回 - 在看似随机的时刻和位置 - 到它的原始位置。如您所见,我在手势结束时进行记录。当视图跳回时,不会打印该日志。
我已在所有子视图上将启用用户交互设置为 false
有没有办法告诉子视图在不干扰的情况下将手势传递给视图?