2012-07-08 4 views
0

Я пытаюсь реализовать UIPanGestureRecognizer для UIImageView. В настоящее время я могу перетащить 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

+0

@RobertRyan Вы правы. Случилось, что я дважды случайно инициализировал свои изображения. Спасибо что подметил это. Я не могу поверить, что я это не замечал, я пытался исправить это весь день. – mservidio

+0

@RobertRyan - пожалуйста, напишите ответ, чтобы я мог принять. – mservidio

ответ

0

Она должна быть простым вопросом где у вас есть несколько изображений. Многие из нас перетаскивают UIImageView без инцидентов. В коде нет ничего очевидного (хотя меня путают разные имена переменных/классов), поэтому вам может потребоваться предоставить более полный образец кода. Вы можете попробовать добавить некоторые отладочные сообщения (например, зарегистрировать подсчет субвью для вашего вида, например, viewDidLoad и снова в методе tileDragged).

Из ваших комментариев я собираюсь понять, что вы, наконец, решили проблему. Congrats!

+0

Я исправил имена переменных в сообщении. Извини за это. – mservidio

Смежные вопросы