Как аннулировать метод IBAction при сенсорном отпуске
Вот код, который я использую, чтобы попытаться сделать недействительными IBActions "TouchEndedLeft" и "TouchEndedRight" при сенсорном отпускании
-(IBAction)LeftArrowTapped:(id)sender; {
[self heroMovementTimerMethodLeft];
}
-(IBAction)RightArrowTapped:(id)sender; {
[self heroMovementTimerMethodRight];
}
-(void)heroMovementLeft{
hero.center = CGPointMake(hero.center.x -.5, hero.center.y );
}
-(void)heroMovementRight{
hero.center = CGPointMake(hero.center.x +.5, hero.center.y );
}
-(void)heroMovementTimerMethodLeft {
heroMovementTimerLeft = [NSTimer
scheduledTimerWithTimeInterval:speedOfhero
target:self selector:@selector(heroMovementLeft) userInfo:nil
repeats:YES];
}
-(void)heroMovementTimerMethodRight {
heroMovementTimerRight = [NSTimer
scheduledTimerWithTimeInterval:speedOfhero
target:self selector:@selector(heroMovementRight) userInfo:nil
repeats:YES];
}
Вот как я пытаюсь сделать метод недействительным, используя отмененный стиль IBAction
-(IBAction)TouchendedLeft:(id)sender; {
[heroMovementTimerLeft invalidate];
}
-(IBAction)TouchendedRight:(id)sender; {
[heroMovementTimerRight invalidate];
}
Каков наилучший способ аннулировать метод IBAction, когда вы отпустите палец? я пробовал отменить отмену, подправить снаружи и подправить в стилях IBAction, но, похоже, ни один из них не работает. Я использую неправильный стиль IBAction? неправильный тип метода? или я неправильно выполняю код?
1 ответ
Если вы сделаете два IBActions, по одному для каждой кнопки желаемого события, вы сможете захватить событие touchdown: и touchUpInside:. Начальное нажатие должно быть связано с событием touchdown: и отпусканием кнопки с событием touchUpInside:. Похоже, вы пытаетесь создать игру, вы смотрели на фреймворки SpriteKit(2D) или SceneKit (3D)?