好的,所以我选择使用块动画为我的标签设置动画。
逻辑很简单,我有一个由按钮组成的图表栏,当按下按钮时,它会创建一个没有宽度的标签,然后以同样的方法,动画开始拉长标签,以便标签内的文字出来了,然后在短暂的 2.5 秒延迟后,标签再次收缩并从 superview 中删除。
问题是 :
延迟在 OS 4.3 中正常工作。动画按预期工作,它显示标签,在 2.5 之后它触发下一个动画并关闭标签。
OS 5.0 中忽略了延迟。第一个动画完成后,它没有等待延迟,而是立即触发下一个动画块。
这是我关于动画的一些代码:
UILabel *lbl = [self createLabelWithText:numString frame:CGRectMake(touchPoint.x, touchPoint.y, 0, 10) bold:YES font:@"Helvetica" fontSize:10 color:[UIColor whiteColor] textAlignment:UITextAlignmentLeft andTag:987];
[lbl setBackgroundColor:[UIColor blackColor]];
[lbl setAlpha:0.5];
[self.view addSubview:lbl];
[UIView animateWithDuration:0.3 animations:^
{
[lbl setFrame:lblRect];
}completion:^(BOOL finished)
{
[UIView animateWithDuration:0.2 delay:2.5 options:UIViewAnimationOptionCurveEaseInOut animations:^
{//here the second animation delay run properly on 4.3 , but ignored at 5.0
[lbl setFrame:CGRectMake(touchPoint.x, touchPoint.y, 0, 10)];
}completion:^(BOOL finished) {
[lbl removeFromSuperview];
}];
}];
在此先感谢您的帮助!
编辑:如果你们中的任何人想知道为什么这个人没有在谷歌或其他 stackoverflow 问题上搜索,事实上,我做到了,遗憾的是,我发现的所有帖子都没有为我提供我需要的答案。:(