Ios 使用UIPangestureRecognitor移动UIImageView

Ios 使用UIPangestureRecognitor移动UIImageView,ios,cocoa-touch,ios5,uipangesturerecognizer,Ios,Cocoa Touch,Ios5,Uipangesturerecognizer,我正在尝试为UIImageView实现一个UIPangestureRecognitor。目前,我可以拖动UIImageView并约束将其移动到的位置。但是,它正在移动看起来是UIImageView副本的内容,而原始UIImageView保持不变。为什么会发生这种情况 创建UIImageView并将其添加到主视图后,我将添加手势识别器: UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self

我正在尝试为UIImageView实现一个UIPangestureRecognitor。目前,我可以拖动UIImageView并约束将其移动到的位置。但是,它正在移动看起来是UIImageView副本的内容,而原始UIImageView保持不变。为什么会发生这种情况

创建UIImageView并将其添加到主视图后,我将添加手势识别器:

UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(tileDragged:)];
pan.maximumNumberOfTouches = 1;
pan.minimumNumberOfTouches = 1;
[tileImageView addGestureRecognizer:pan];
然后在我的瓦片标记方法中:

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;
}

这必须是一个简单的问题,你有一个以上的图像在那里。我们中的很多人在没有任何意外的情况下在ImageView中四处走动。您的代码中没有明显的内容(尽管我对不同的变量/类名感到困惑),因此您可能需要给我们提供一个更全面的代码示例。您可以尝试添加一些调试消息(例如,将视图的子视图计数记录在
viewDidLoad
中,然后再次记录在
tileDragged
方法中)


我从你的评论中得知,你终于解决了这个问题。恭喜你

它只是一个简单的bug,你有多个图像。我们中的很多人在没有任何意外的情况下在ImageView中四处走动。这里的代码中没有什么明显的内容(尽管还不清楚什么是tileImageView,什么是tileView),所以您可能需要给我们一个更全面的代码示例。您可以尝试添加一些调试消息(例如,在
viewDidLoad
上记录视图的子视图计数,然后再次在
tileDragged
方法中记录子视图计数)。@RobertRyan您是对的。发生的事情是我两次意外初始化我的图像。谢谢你指出这一点。我不敢相信我忽略了这一点,我一整天都在试图解决这个问题。@RobertRyan-请发布一个答案,这样我就可以接受了。我已经更正了帖子中的变量名。很抱歉。