Ios “为什么?”+;(void)setAnimationStartDate:(NSDate*)startDate&引用;不行
我正在研究Ios “为什么?”+;(void)setAnimationStartDate:(NSDate*)startDate&引用;不行,ios,objective-c,nsdate,uiviewanimation,Ios,Objective C,Nsdate,Uiviewanimation,我正在研究UIView Animation,我发现当我使用+(void)setAnimationStartDate:(NSDate*)startDate;“在beginAnimations:context:和commitAnimations方法之间,它不起作用 [UIView beginAnimations:@"demo" context:nil]; [UIView setAnimationDuration:3.0f]; [UIView setAnimationStartDate:[NSDate
UIView Animation
,我发现当我使用+(void)setAnimationStartDate:(NSDate*)startDate
;“在beginAnimations:context
:和commitAnimations
方法之间,它不起作用
[UIView beginAnimations:@"demo" context:nil];
[UIView setAnimationDuration:3.0f];
[UIView setAnimationStartDate:[NSDate date]];
// do something
[UIView commitAnimations];
因为默认方法是now(NSDate
date),所以我甚至尝试了“[nsdatedatewithtimeintervalsincenow:5]
”,它也不起作用
如果我不使用这个方法,它会像往常一样工作。谢谢。您正在调用
setAnimationStartDate
,这意味着您正在为此动画提供开始时间。因此,在这一时刻到来之前,它不会启动
作为国家
在beginAnimations:context:和committeanimations方法之间调用此方法,以指定该动画集的开始时间。并在更改视图的可设置动画的属性之前调用此方法。(不要将此方法与基于块的动画一起调用。)如果不调用此方法,则开始时间将设置为CFAbsoluteTimeGetCurrent函数返回的值,该函数将尽快开始动画
iOS 4.0及更高版本不鼓励使用此方法。您应该使用基于块的动画方法来指定动画
有关更多详细信息,请参阅文档
希望这会有所帮助:)看看。我认为您只需要使用
animateWithDuration:delay:options:animations:completion:
类UIView
的方法重构代码,您可以使用setAnimationDelay:
实现相同的功能。它起作用了
[UIView setAnimationDelay:5];
有关详细信息,请参阅。不确定为什么
setAnimationStartDate:
不起作用,它应该起作用,因为上面的文档中提到了这一点。您好。我尝试使用“[nsdatedatewithtimeintervalsincenow:5]”。但是,我等了5秒钟后,它就不起作用了。我在互联网上搜索,有人说使用“[UIView setAnimationStartDate:CFAbsoluteTimeGetCurrent()+5];”,它现在无法编译。是的,因为您传递的是'CFAbsoluteTime'类型的参数,而不是NSDate
type!现在告诉我你到底想做什么?是否要设置视图的动画?或者您想在特定的预定义时间制作动画?谢谢。我正在学习UIView
,我只是想知道每一种方法。我只是不明白为什么不工作。也许苹果改变了这种方法。是的,我尝试使用[NSDate datewithtimeintervalcesceReferenceDate:CFAbsoluteTimeGetCurrent()+3]
,但仍然不起作用谢谢。我正在学习UIView
,我只是想知道每一种方法。我只是不明白为什么不工作。也许苹果改变了这个方法。我会用其他方法代替。