我在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秒。有人知道这个的原因吗?
答案 0 :(得分:7)
hidden
属性不可动画:
UIView
类的以下属性是可动画的:
@property frame
@property bounds
@property center
@property transform
@property alpha
@property backgroundColor
@property contentStretch
尝试在动画块中使用其中一个属性,然后应该发生延迟。例如,您可以将alpha
从1.0
设为0.0
,然后将其隐藏在完成功能块中。