常用的IOS动画效果

本文详细介绍了iOS中实现视图动画的方法,包括淡入淡出、缩放旋转及界面切换等效果的实现过程。通过调整UIView的alpha值、使用CGAffineTransform函数及UIView的动画方法,开发者可以轻松创建丰富的用户界面交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 淡入淡出

交叉进出可以简单地通过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];              //动画结束

可以使用的转移效果

  1. UIViewAnimationTransitionFlipFromRight: 从右边翻转到左边。
  2. UIViewAnimationTransitionFlipFromLeft: 从左边翻转到右边。
  3. UIViewAnimationTransitionCurlUp: 往上翻页
  4. UIViewAnimationTransitionCurlDown: 往下翻页
  5. UIViewAnimationTransitionNone: 无效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值