-(void)handleTimer:(NSTimer*)timer
{
float angle = theta *(PI/100); //这里弧度制的100相当于是角度制中的180度 所以PI/100再
//乘于theta表示theta的对应的度数是多少 再赋值给angle
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
//仿射变换的改变 使图片进行旋转
theta = ( theta + 1 ) % 200 ; //转过的度数 如果到一圈了 就从度数为1度开始
float degree = cos(angle); //cos值是 度数越大值越小 在0~100弧度中间呈下降趋势,
//50~150弧度为负数 150~200弧度为上升趋势
if(degree < 0.0) degree *= -1.0f; //使度数呈现为正数,好计算
degree += 0.5f ; //0.5为缩放的尺度
CGAffineTransform scaled = CGAffineTransformScale(transform, degree,degree);
//图片的缩放程度 1~50弧度时图是缩放的 1弧度时最大 25弧度时和原来一样 50弧度时图片最小是原图
//片的0.5倍 50~100弧度是放大过程 75弧度时是和原来大小相同 100弧度时图片最大是原图片的1.5倍
//100~150弧度是缩放的 125弧度时是和原图片相同 150弧度时最小是原图片的0.5倍 150~200弧度放
//大过程 175弧度时是和原来大小相同 200弧度时图片最大是原图片的1.5倍
[[self.view viewWithTag:ROTATE_VIEW_TAG]setTransform:scaled];
}
然后在loadView或viewDidLoad中 加上
//iphone为我们提供了一个很强大得时间定时器 NSTimer 一个时间定时器 只要记住三要素具体得三要素是:
//时间间隔NSTimeInterval浮点型,事件代理delegate和事件处理方法@selector();就可以用此方法
[NSTimer scheduledTimerWithTimeInterval:0.03f
target:self
selector:@selector(handleTimer:)
userInfo:nil
repeats:YES];
//0.03f 表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1
// target表示发送的对象,如self方法选择器,在时间间隔内,选择调用一个实例方法 此参数可以为nil,
//当定时器失效时,由你指定的对象保留和释放该定时器。当YES时,定时器会不断循环直至失效或被释放,
//当NO时,定时器会循环发送一次就失效。