Два события касания (касание / касание и перетаскивание) на 1 ViewController, но я хочу, чтобы «касание и перетаскивание» запускались независимо

#objective-c

#objective-c

Вопрос:

У меня есть 2 изображения на одном ViewController. Когда я нажимаю на вид, изображение 1 прыгает. Для image2 я могу касаться и перетаскивать изображение вокруг вида. Моя проблема в том, что когда я касаюсь image2 для перетаскивания, image1 прыгает. Я не хочу, чтобы изображение 1 прыгало при перетаскивании изображения 2.

Я думал, что смогу выполнить это без UIGestureRecognizer; просто используя простой оператор if. Возможно ли это?

Беспорядок, который у меня есть до сих пор…
и, пожалуйста, обратите внимание, поскольку я занимаюсь этим уже некоторое время, мой код для этого не имеет большого смысла, потому что ничего из того, что я пытаюсь, не работает, поэтому я удалил его. Я просто чувствую, что это должно быть так просто, как если происходит событие касания и перетаскивания image2, то событие касания image1 не должно.

GameViewController.h

 bool flicked;
  

GameViewController.m

 -(IBAction)startGame:(id)sender {
flicked = 0;

//start game code...

}
  

IMAGE2 — это изображение можно перетаскивать по виду

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//flicked = 1;
UITouch *myTouch = [[event allTouches] anyObject];
Image2.center = [myTouch locationInView:self.view];
//flicked = 0;
}
  

IMAGE1 — это изображение переходит при нажатии на view

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

if ((flicked = 0)) //OR (!flicked)?
{
    image1jump = 30;
}
else {

image1jump = 0;
  }
}
  

Ответ №1:

Попробуйте установить два UIGestureRecognizer, один на однократное нажатие ImageView, а другой на касание и перетаскивание ImageView. Установите их соответствующим образом (вероятно, TapGestureRecognizer и PanGesturecognizer). Трудно представить сценарий, в котором переопределение методов обработки прикосновений будет проще, чем распознаватель жестов для того, что вы описываете.