- 淡入淡出
交叉进出可以简单地通过UIView 的alpha值的变化来达成,alpha越大,画面会越明显,越接近0则越有朦胧感。通过对UIView 的动画时间曲线的控制就可以让界面呈现出淡入淡出的效果
//淡入淡出
self.view.alpha:1.0f; //先设置界面100%显示出来
[UIView beginAnimations:@"myAnim" context:NULL]; //动画开始
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //动画时间曲线
[UIView setAnimationDuration:0.5f]; //动画时间
self.view.alpha =0.0f; //让画面消失
[UIView commitAnimations]; //动画结束
这段代码是淡入效果,如果将两个alpha值交换一下,就会变成淡出的效果。
- 变形效果
变形效果主要包括缩放与旋转。要让一个画面由小变大或有大变小,或者是旋转某个角度,在IOS中都可以做到。缩放效果主要是通过CGAffineTransformScale函数做到得,必须给这个函数两个参数,第一个参数是X值缩放比例,第二个参数是Y值的缩放比例。旋转效果则是通过CGAffineTransformMakeRotation 函数做到。
self.view.transform = CGAffineTransformScale(1.0f,1.0f) //设置缩放比例为1
[UIView beginAnimations:@"myAnim" context:NULL]; //动画开始
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //动画时间曲线
[UIView setAnimationDuration:0.5f]; //动画时间
self.view.transform = CGAffineTransformScale(2.0f,2.0f) //设置缩放比例为2
[UIView commitAnimations]; //动画结束
要同时加上旋转效果的话,可以把原有的程序代码改成下面的方式。
CGAffineTransform newTransform;
newTransform = CGAffineTransformMakeRotation(M_PI*2); //先旋转
self.view.transform = CGAffineTransformScale(newTransform,2.0f,2.0f); //后缩放
- 转场(transition)效果
除了单一界面的变化外,也可以做到两个界面切换时的效果,
[UIView beginAnimations:@"FlipAnim" context:NULL]; //动画开始
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES]; //翻转效果
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; //动画时间曲线
[UIView setAnimationDuration:0.5f]; //动画时间
[self.view exchangeSubViewAtIndex:0 withSubviewAtIndex:1]; //交换两个界面
[UIView commitAnimations]; //动画结束
可以使用的转移效果
- UIViewAnimationTransitionFlipFromRight: 从右边翻转到左边。
- UIViewAnimationTransitionFlipFromLeft: 从左边翻转到右边。
- UIViewAnimationTransitionCurlUp: 往上翻页
- UIViewAnimationTransitionCurlDown: 往下翻页
- UIViewAnimationTransitionNone: 无效果