【发布时间】:2016-04-20 12:27:45
【问题描述】:
我有以下拖动 UIView 的代码。视觉上一切正常。
func moveView(sender: UIPanGestureRecognizer) {
let translate = sender.translationInView(self.view)
if sender.state == UIGestureRecognizerState.Changed {
sender.view!.center = CGPoint(x:sender.view!.center.x + translate.x, y:sender.view!.center.y + translate.y)
sender.setTranslation(CGPointZero, inView: self.view)
}
if sender.state == UIGestureRecognizerState.Ended {
let newX: CGFloat = sender.view!.center.x + translate.x
let newY: CGFloat = sender.view!.center.y + translate.y
sender.view!.center = CGPoint(x:newX, y:newY)
}
}
但是在完成此拖动后,视图似乎失去了手势连接,因此我无法再次拖动它或触发与之关联的任何点击手势等。
如果我添加一个 NSLog,我可以看到点击视图曾经触发日志的位置,但如果我点击实际的当前视图位置,则不会。
我在 viewDidLoad 中创建了查看 thisView 的手势
let moveGesture = UIPanGestureRecognizer(target: self, action: Selector("moveView:"))
thisView.addGestureRecognizer(moveGesture)
我遗漏了什么使手势与新视图位置保持联系?
谢谢。
【问题讨论】:
标签: ios swift uiview uigesturerecognizer