我想为UIImageView实现一个UIPanGestureRecognizer。目前,我可以拖动UIImageView并约束它移动到哪里并且工作。但是,它正在移动看起来是UIImageView的副本,并且原始的UIImageView仍在原地。为什么会发生?在的UIImageView被创建并添加到主视图用UIPanGestureRecognizer移动UIImageView
后,我加入了手势识别:
UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(tileDragged:)];
pan.maximumNumberOfTouches = 1;
pan.minimumNumberOfTouches = 1;
[tileImageView addGestureRecognizer:pan];
然后在我的tileDragged方法:
case UIGestureRecognizerStateChanged:
{
PuzzleTileView *tileView = (PuzzleTileView *)[self.allTiles objectAtIndex:panGesture.view.tag];
CGFloat x = 0.0;
CGFloat y = 0.0;
// x and y are calculated.
[tileView setTransform:CGAffineTransformMakeTranslation(x, y)];
break;
}
这只是一个简单的错误,你有一个以上的图像。很多人拖动UIImageView的时候没有发生任何事情。这里没有什么明显的代码(尽管不清楚tileImageView是什么以及tileView是什么),所以您可能需要给我们一个更全面的代码示例。您可以尝试添加一些调试消息(例如,在'viewDidLoad'处再次在'tileDragged'方法中记录您的视图的子视图的数量)。 – Rob 2012-07-08 03:47:52
@RobertRyan你是对的。发生了什么事是我偶然地将图像初始化了两次。感谢您指出了这一点。我无法相信我忽略了这一点,我一直在努力解决这个问题。 – mservidio 2012-07-08 03:50:07
@RobertRyan - 请发表回答,以便我接受。 – mservidio 2012-07-09 15:18:46