使用 UIPanGestureRecognizer 移动时图片总是回到原点
Posted
技术标签:
【中文标题】使用 UIPanGestureRecognizer 移动时图片总是回到原点【英文标题】:Picture always move back to the origin during move with UIPanGestureRecognizer 【发布时间】:2015-05-18 05:34:59 【问题描述】:我尝试以编程方式实现平移手势,但是当我尝试它时,uiview 总是在移动过程中移回超级视图内的原点位置。所以实际上它从原点来回跳转到新位置。 有谁知道问题出在哪里?
代码:
- (void)setGesture
self.userInteractionEnabled = YES;
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(detectPan:)];
self.gestureRecognizers = @[panRecognizer];
- (void) detectPan:(UIPanGestureRecognizer *) penGes
if ((penGes.state == UIGestureRecognizerStateChanged) ||
(penGes.state == UIGestureRecognizerStateEnded))
CGPoint translation = [penGes translationInView:self.superview];
self.center = CGPointMake(self.lastLocation.x + translation.x,
self.lastLocation.y + translation.y);
[penGes setTranslation:CGPointZero inView:self];
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
// Promote the touched view
[self.superview bringSubviewToFront:self];
// Remember original location
self.lastLocation = self.center;
【问题讨论】:
【参考方案1】:我认为您的翻译与自动布局约束冲突。 看看this answer 来自matt 的关于转换和自动布局的信息。
【讨论】:
以上是关于使用 UIPanGestureRecognizer 移动时图片总是回到原点的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 UIPanGestureRecognizer 移动对象时会有延迟?
UIPanGestureRecognizer ***视图未获取事件,子视图使用它们
在 UITableView 上滑动删除以使用 UIPanGestureRecognizer
在 UIPanGestureRecognizer 中使用velocityInView