Мне удалось реализовать решение этой проблемы, однако код кажется довольно неэффективным, и на самом деле отложенные вызовы методов оказываются немного проблематичными, когда они продолжают срабатывать, если пользователь перешел на другой экран.
По сути, я хочу, чтобы мысленный пузырь появлялся из головы персонажа, но был анимированным, чтобы появлялся маленький пузырь, затем еще больший, еще больший и, в конечном счете, главный пузырь, который затем содержит небольшую анимацию. Мне удалось это, отобразив каждый пузырь с его собственным методом, а затем вызвав методы с задержками:
- (void)showMood {
animating = TRUE;
[self showBubble1];
}
- (void)showBubble1 {
bubble1.hidden = FALSE;
[self performSelector:@selector(showBubble2) withObject:nil afterDelay:kBubbleDelay];
}
- (void)showBubble2 {
bubble2.hidden = FALSE;
[self performSelector:@selector(showBubble3) withObject:nil afterDelay:kBubbleDelay];
}
- (void)showBubble3 {
bubble3.hidden = FALSE;
[self performSelector:@selector(showThoughtBubble) withObject:nil afterDelay:kBubbleDelay];
}
- (void)showThoughtBubble {
thoughtBubble.hidden = FALSE;
[self startBubbleAnimations];
[self performSelector:@selector(hideThoughtBubble) withObject:nil
afterDelay:kAnimationDuration * kAnimationRepeatCount];
}
- (void)hideThoughtBubble {
bubble1.hidden = TRUE;
bubble2.hidden = TRUE;
bubble3.hidden = TRUE;
thoughtBubble.hidden = TRUE;
[bubbleAnimation stopAnimating];
animating = FALSE;
}
Полагаю, я мог бы создать одну большую анимацию, в которой все пузыри являются частью одного и того же кадра, а каждый кадр содержит еще один пузырек, но я как бы хотел немного переместить пузыри в Интерфейсном Разработчике и в этом подходе не предлагает большой гибкости.
Любые мысли будут очень признательны.
Спасибо,
Майкл