2012-07-08 42 views
0

我想爲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; 
} 
+1

這只是一個簡單的錯誤,你有一個以上的圖像。很多人拖動UIImageView的時候沒有發生任何事情。這裏沒有什麼明顯的代碼(儘管不清楚tileImageView是什麼以及tileView是什麼),所以您可能需要給我們一個更全面的代碼示例。您可以嘗試添加一些調試消息(例如,在'viewDidLoad'處再次在'tileDragged'方法中記錄您的視圖的子視圖的數量)。 – Rob 2012-07-08 03:47:52

+0

@RobertRyan你是對的。發生了什麼事是我偶然地將圖像初始化了兩次。感謝您指出了這一點。我無法相信我忽略了這一點,我一直在努力解決這個問題。 – mservidio 2012-07-08 03:50:07

+0

@RobertRyan - 請發表回答,以便我接受。 – mservidio 2012-07-09 15:18:46

回答

0

它必須是一個簡單的問題那裏你有多個圖像。很多人拖動UIImageView的時候沒有發生任何事情。在你的代碼中沒有任何明顯的東西(儘管我對不同的變量/類名稱感到困惑),所以你可能需要給我們一個更全面的代碼示例。您可以嘗試添加一些調試消息(例如,在viewDidLoad以及tileDragged方法中記錄您的視圖的子視圖的次數)。

我收集你的意見,你終於解決了這個問題。恭喜!

+0

我已更正帖子中的變量名稱。對於那個很抱歉。 – mservidio 2012-07-09 15:44:58

相關問題