我在x and y start coordinates
期间设法获得了swipe
:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
let position :CGPoint = touch.locationInView(view)
startX = Int(position.x)
startY = Int(position.y)
}
}
我也需要在滑动过程中使用y坐标。我已经设法用 UIPanGestureRecognizer
以非常迂回的方式做到这一点。
必须有一些方法可以在获得起始坐标的几行内完成。
任何人都可以帮我指出正确的方向吗?
致以最诚挚的问候,Niklas
答案 0 :(得分:4)
您可以使用UIPanGestureRecognizer
。它将为您提供滑动的x和y坐标。 Apple专门针对这种情况创建了这个 - 它比touchesMoved更容易实现并且自己跟踪所有内容。
设置手势识别器:
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePan:")
self.someDraggableView.addGestureRecognizer(gestureRecognizer)
要获得翻译(在上面设置的回调中):
func handlePan(gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .Began {
// When the drag is first recognized, you can get the starting coordinates here
}
if gestureRecognizer.state == .Changed {
let translation = gestureRecognizer.translationInView(self.view)
// Translation has both .x and .y values
}
}
在回调的.Changed
部分,每次用户在给定视图中移动手指时,都会调用您的代码。您可以从translation.y
您可以看到更多示例here。
答案 1 :(得分:0)
看起来你正在寻找方法'touchesMoved'。我在手机上做这个答案,所以不能正确的格式