Как аннулировать метод 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)?

Другие вопросы по тегам