树形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++ ,