我想爲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