UIView基本动画

   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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值