我正在尝试为UIImageView实现一个UIPanGestureRecognizer。目前,我可以拖动UIImageView并将其限制在我将其移动到的位置,这是可行的。然而,它移动的似乎是UIImageView的副本,而原始的UIImageView仍在原地不动。为什么会发生这种情况?
创建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;
}发布于 2012-07-09 23:26:49
这肯定是一个简单的问题,因为你有多个图像。我们很多人把UIImageView拖来拖去都没出意外。您的代码中没有什么明显的东西(尽管我被不同的变量/类名称搞糊涂了),所以您可能需要给我们提供一个更全面的代码示例。您可以尝试添加一些调试消息(例如,在viewDidLoad处记录视图的子视图数,然后在tileDragged方法中再次记录)。
从你的评论中我知道你终于解决了这个问题。恭喜!
https://stackoverflow.com/questions/11380215
复制相似问题