iphone - block 动画延迟在 OS 4.3 上工作正常但在 5.0 上不工作

标签 iphone objective-c ios ipad

好的,所以我选择使用 block 动画为我的标签设置动画。

逻辑很简单,我有一个由按钮组成的图表栏,当按钮被按下时,它会创建一个没有宽度的标签,然后用同样的方法,动画开始加长标签,这样的话里面的标 checkout 来了,然后在短暂的 2.5 秒延迟后,标签再次收缩并从 superview 中移除。

问题是:

  • 延迟在 OS 4.3 中正常工作。 动画按预期工作,显示标签,在 2.5 之后触发下一个动画并关闭标签。

  • 延迟在 OS 5.0 中被忽略。 第一个动画完成后,它没有等待延迟,而是立即触发下一个动画 block 。

这是我的一些关于动画的代码:

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 问题,事实上,我搜索了,遗憾的是我找到的所有帖子都没有为我提供我需要的答案。 :(

最佳答案

好的,我找到问题了。这不完全是 block 动画的错,而是因为我将动画设置为将 uilabel 缩小到宽度“0”而发生的错误。结果出现在 IOS 5.0(至少在我的项目中),因为我通过使用约束设置标签大小,当我试图缩小标签时,一旦它读取标签不足以显示整个文本,它会立即终止标签本身。

关于iphone - block 动画延迟在 OS 4.3 上工作正常但在 5.0 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10492879/

相关文章:

java - Appium - 如何在 iOS 设备上设置地理位置?

iphone - 扩展 UIScrollView 并监控滚动事件

ios - UINavigationBar + largeTitleDisplayMode

iphone - 多个注释未显示在 Iphone map View 中

ios - Apple 通知设备 token 更改

iphone - 如何隐藏按下音量增大/减小按钮时弹出的消息

iphone - UI View Controller

iphone - iPhone大图标512x512,带边框毛刺?

ios - 这个声明是什么意思?

ios - 从 Info.plist 中删除启动屏幕文件会缩放 View