#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). Трудно представить сценарий, в котором переопределение методов обработки прикосновений будет проще, чем распознаватель жестов для того, что вы описываете.