Вот моя проблема.
Я использую блоки для отображения двух меток на экране одна за другой (появляется одна метка ГОТОВ, затем исчезает, а метка GO! Появляется, затем исчезает).
У меня также есть распознаватель жестов для определения, перетаскивает ли пользователь представление.
Когда мое приложение отображает метки, распознаватели жестов перестают вызывать их обратный вызов.
Вот мой код:
[UIView animateWithDuration:1 animations:^{
readyLabel.alpha = 0;
}completion:^(BOOL finished){
[readyLabel removeFromSuperview];
[self.view addSubview:goLabel];
[UIView animateWithDuration:1 animations:^{
goLabel.alpha = 0;
}completion:^(BOOL finished){
self.ball = [[Ball alloc] init];
[self.view addSubview:self.ball];
_timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(moveBall:) userInfo:nil repeats:YES];
}];
}];
До сих пор я пытался использовать NSThread для выполнения моих блоков вне основного потока, но без результата.
Я мог бы использовать performSelector:withObject:afterDelay
, чтобы избежать проблемы с моими метками (отображать одну метку после завершения первой анимации), но я думаю, что она немного грязная.
Почему мой распознаватель жестов перестает вызывать его обратный вызов? Ответственны ли за это блоки?