Вы можете отслеживать, получило ли ваше представление событие touchBegan
без соответствующего touchEnded
. Если это так, вы можете сделать вывод, что сейчас происходит касание, и продолжить выполнение кода. Например:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self.touchInProgress = YES; // Assuming you have some property touchInProgress
[self runSomeCode];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
self.touchInProgress = NO;
}
- (void)runSomeCode {
// Do your code here
if(self.touchInProgress) {
[self runSomeCode]
}
}
В этом примере не учитывается ряд вещей, включая метод touchesCancelled
и соответствующие потоки (если вы всегда запускаете «некоторый код», я не уверен, но вы можете никогда не получить touchesEnded
метод для запуска - играйте с performSelector:afterDelay:
или performSelectorInBackground:
).