UIView animateWithDuration:delay:options:animate:completion not delaying

时间:2013-06-18 18:37:47

标签: ios objective-c uiview uiviewanimation

我在SO处看到了一些与此相关的问题,但他们似乎都没有回答这个问题:delay UIView的{​​{1}}部分不会延迟。以下是调用它的实际代码:

animateWithDuration:delay:options:animate:completion:

这是-(void) viewDidAppear:(BOOL)animated { NSLog(@"about to start animateWithDuration..."); [UIView animateWithDuration:3.0 delay:2.0 options:UIViewAnimationOptionTransitionNone animations:^{NSLog(@"in the animations block..."); self.textView.hidden = YES;} completion:^(BOOL finished){if (finished) {NSLog(@"In the completion block..."); self.textView.hidden = NO; [self.player play];}}]; } 时间戳:

  

2013-06-18 15:27:16.607 AppTest1 [52083:c07]即将开始animateWithDuration ......

     

2013-06-18 15:27:16.608动画块中的AppTest1 [52083:c07] ......

     

2013-06-18 15:27:16.609 AppTest1 [52083:c07]在完成区块......

可以看出,指令的执行时间间隔为几毫秒,而不是延迟2或3秒。有人知道这个的原因吗?

1 个答案:

答案 0 :(得分:7)

hidden属性不可动画:

  

UIView类的以下属性是可动画的:

     
    

@property frame

         

@property bounds

         

@property center

         

@property transform

         

@property alpha

         

@property backgroundColor

         

@property contentStretch

  

尝试在动画块中使用其中一个属性,然后应该发生延迟。例如,您可以将alpha1.0设为0.0,然后将其隐藏在完成功能块中。