UIView基本动画

来源:互联网 发布:潘多拉opkg软件源 编辑:程序博客网 时间:2024/05/22 01:30

   CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照

   CGAffineTransformTranslate每次都是以传入的transform为起始参照

   CGAffineTransformIdentity为最初状态,即最初位置的中心点

   总结:带Make的都是以初始位置参照,不带Make的是以传入的transform为起始参照,缩放 旋转动画同理

1.平移视图

- (IBAction)translationView:(id)sender{    CGAffineTransform transform;        // 如果tag == 0,向下移动300个点    // 如果tag == 1,回复初始位置    if (_subView1.tag == 0) {                transform = CGAffineTransformMakeTranslation(10.0, 300.0);        [_subView1 setTag:1];    } else {        transform = CGAffineTransformMakeTranslation(0, 0);        [_subView1 setTag:0];    }        [_subView1 setTransform:transform];}
2.缩放视图
- (IBAction)scaleView:(id)sender{    // 点一下,放大,tag = 1    // 再点一下,缩小 tag = 0        // sx表示水平方向缩放的比例    // sy表示垂直方向缩放的比例    CGAffineTransform transform;        if (_subView1.tag == 0) {        transform = CGAffineTransformScale(_subView1.transform, 1.2, 1.5);        [_subView1 setTag:1];    } else {        // 缩小的时候,需要注意比例的处理        transform = CGAffineTransformScale(_subView1.transform, 1.0 / 1.2, 1.0 / 1.5);        [_subView1 setTag:0];    }    [_subView1 setTransform:transform];}
3.旋转视图
- (IBAction)rotationView:(id)sender{    // 旋转角度的参数是弧度值,弧度制是一个浮点数,180度的角度对应的弧度值是PI , 90 = PI / 2, 45 = PI / 4    // 使用TransformMakexxx方法是相对视图初始位置的形变    CGAffineTransform transform = CGAffineTransformRotate(_subView1.transform, M_PI_4);        [_subView1 setTransform:transform];}




0 0
原创粉丝点击