use*_*881 4 iphone xcode5 animatewithduration
我正在尝试使用
[UIView animateWithDuration:1 delay:2 options:UIViewAnimationOptionCurveEaseIn animations:^{
} completion:^ (BOOL completed) {} ];
Run Code Online (Sandbox Code Playgroud)
但无论我为延迟做出什么号码,都没有延迟.
当触摸另一个按钮时,我试图让一系列按钮一个接一个地淡入淡出.所以我使用了一系列具有不同延迟时间的UIView动画,但无论我进入什么时间延迟,它们都会同时出现.有人有什么建议吗?
Mut*_*awe 17
首先,价值观animateWithDuration和delay有float价值观,应尽可能1.0和2.0
意见:如果您的代码位于ViewDidLoadMethod,请尝试将其移动到单独的函数
其次,如果您无法通过此上下文执行此操作,请跳转到另一个,或者使用等方式进行操作
performSelector:withObject:afterDelay
Run Code Online (Sandbox Code Playgroud)
另一种方法是将其设置delay为0,并将后续UIView动画块放在completion先前animateWithDuration语句的块中
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
//Leave it empty
}
completion:^(BOOL finished){
// Your code goes here
[UIView animateWithDuration:1.0 delay:0.0 options:
UIViewAnimationOptionCurveEaseIn animations:^{
} completion:^ (BOOL completed) {}];
}];
Run Code Online (Sandbox Code Playgroud)
PS:某些属性不支持动画,例如在动画块中设置文本,因此在延迟结束后,动画开始立即更改文本,因为该更改不可动画.
在文本动画案例中,要执行所需操作,请按如下所示更改完成块中的文本:
[UIView animateWithDuration:1.0
delay:2.0
options: UIViewAnimationOptionTransitionCrossDissolve
animations:nil
completion:^{
lbl.text = @"My text" ;
}];
Run Code Online (Sandbox Code Playgroud)
同样backgroundColor是不以动画UIView.相反,使用backgroundColor视图的属性layer:
[[controller layer] setBackgroundColor:[[UIColor anyColor] CGColor]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36081 次 |
| 最近记录: |