我读过苹果的文档:http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html#//apple_ref/doc/uid/TP40009503-CH6-SW1
对于iOS3.0及更早版本,请使用以下命令:
Method1:
[UIView beginAnimations:@"ShowHideView" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
...新的iOS4可以做到这一点:
Method2:
[UIView animateWithDuration:1.0 animations:^{
firstView.alpha = 0.0;
secondView.alpha = 1.0;
}];Q1。我想知道的是,在早期的方法中,他们在beginAnimations中有这个"ShowHideView“,这个方法是内置的吗?
Q2。在beginAnimations中还有其他内置的动画方法吗?如果是,我在哪里可以找到所有这些方法?
Q3。最后,我可以在后面的方法(Method2)调用中使用这些方法吗?
发布于 2011-06-10 11:49:28
您可以在UIView Class Reference中获取所有问题的答案。
Q1:ShowHideView,正如您所拥有的,根本不是一个方法。它只是一个“应用程序提供的动画标识符”。实际上,你并不需要它。当我使用这个方法时,我只是使用NULL,而不是在那里提供标识符。
Q2:您不能在beginAnimations:context:调用中设置动画。您甚至可以通过调用setAnimationCurve来说明这一点。您可以从this typedef设置动画。
Q3:同样,您也没有在animateWithDuration:animations:调用中声明动画类型。在该示例中,也可以利用setAnimationCurve:来实现这一点。
发布于 2011-06-10 12:01:46
块的好处是能够使用[UIView animateWithDuration:animations:completion:]选择器嵌套动画(几乎在一个队列中)。您可以将对此方法的另一个调用嵌套在finished块中,如下所示:
[UIView animateWithDuration:1.0 animations:^{
// your first animations
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 animations:^{
// more animations
} completion:^(BOOL finished) {
// ... maybe even more
}]
}]我在我的代码中滥用了这一点,并发现它比使用beginAnimations/commitAnimations代码容易得多。而且,随着iOS 5的临近,需要支持iOS 3.x的日子正在一去不复返。
https://stackoverflow.com/questions/6301730
复制相似问题