【发布时间】:2010-07-26 16:24:58
【问题描述】:
我已经设法解决了这个问题,但是代码看起来效率很低,实际上,如果用户导航到另一个屏幕,延迟的方法调用在继续触发时会有点麻烦。
基本上,我希望从角色的头部出现一个思想泡泡,但是是动画的,所以会出现一个小泡泡,然后是一个更大的泡泡,然后是一个更大的泡泡,最后是包含一点动画的主泡泡。我通过使用自己的方法显示每个气泡,然后延迟调用这些方法来解决这个问题:
- (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;
}
我想我可以创建一个大型动画,其中气泡都是同一帧的一部分,并且每一帧都包含一个气泡,但我有点希望能够在 Interface Builder 和这种方法中移动气泡没有提供太大的灵活性。
任何想法将不胜感激。
谢谢,
迈克尔
【问题讨论】:
标签: objective-c animation methods uiimageview delayed-execution