我有以下UIPanGestureRecognizer
设置:
- (void)pan:(UIPanGestureRecognizer *)gesture {
if ((gesture.state == UIGestureRecognizerStateChanged) ||
(gesture.state == UIGestureRecognizerStateEnded)) {
CGPoint translation = [gesture translationInView:self.superview];
gesture.view.center = CGPointMake(gesture.view.center.x + translation.x, gesture.view.center.y + translation.y);
[gesture setTranslation:CGPointZero inView:self.superview];
}
}
我想在视图中平移,在同一视图中将一个位置移动到另一个位置。这是在移动视图,我该如何修改它来做我想做的事情?
更新:这就是我的方法最终正确平移的方式
- (void)pan:(UIPanGestureRecognizer *)gesture {
if ((gesture.state == UIGestureRecognizerStateChanged) ||
(gesture.state == UIGestureRecognizerStateEnded)) {
CGPoint translation = [gesture translationInView:self];;
self.origin = CGPointMake(self.origin.x + translation.x, self.origin.y + translation.y);
[gesture setTranslation:CGPointZero inView:self];
}
}
origin
在我看来是一个属性,它只是标记了我的图表中心的位置。在其 setter 方法中,setNeedsDisplay
每当更改此值时都会更新