Я пытаюсь реализовать 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;
}
Это просто простая ошибка, в которой у вас есть более одного изображения. Многие из нас перетаскивают UIImageView без инцидентов. Здесь нет ничего очевидного (хотя неясно, что такое tileImageView и что такое tileView), поэтому вам может потребоваться предоставить более полный образец кода. Вы можете попробовать добавить некоторые отладочные сообщения (например, зарегистрировать подсчет субвью для вашего вида, скажем, 'viewDidLoad' и снова в методе' tileDragged'). – Rob
@RobertRyan Вы правы. Случилось, что я дважды случайно инициализировал свои изображения. Спасибо что подметил это. Я не могу поверить, что я это не замечал, я пытался исправить это весь день. – mservidio
@RobertRyan - пожалуйста, напишите ответ, чтобы я мог принять. – mservidio