当前位置:编程学习 > C/C++ >>

树形Menu箭头动画

在使用TableView实现多级树型menu这篇中,实现了多级Menu的现实 ,很多时候为了让父菜单更有指示性,会在菜单中,加上向下向上箭头,以表示其自菜单是否打开。一般会加上下面的动画效果。
[cpp] 
[UIView animateWithDuration:0.25 animations:^(void){imageView.transform = CGAffineTransformRotate(imageView.transform, 3.1415926);}  
                 completion:^(BOOL finished){  
                     //set default transform  
                     imageView.transform = CGAffineTransformMakeRotation(0);  
                     imageView.image = [UIImage imageNamed:@"new_chevron.png"];  
                     }];  
 
其中需要这条
imageView.transform = CGAffineTransformMakeRotation(0);
因为在使用transform做动画时,其转换是会保存下来的,即使用该imageView下次重新打开图片,其图片时倒着的(因为我们已经把它旋转了π个角度(180)),所以需要先讲其旋转回来,在载入新的图片。
其次因为cell是会被重用的,使用一张图片来回旋转来实现时,不能把旋转效果保存在imageView中(不建议该方法)。
在使用动画效果时,发现了一个很奇怪的现象:
当使用系统的π
#define M_PI        3.14159265358979323846264338327950288   /* pi             */
会出现设置复数是无法顺针旋转,可能会是位数过长造成了溢出,自己定义一个位数短些的π,如
#define  ROTATION_M_PI                3.1415926
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,