美文网首页
iOS中UIView 的旋转与缩放以及同时应用两种效果

iOS中UIView 的旋转与缩放以及同时应用两种效果

作者: 啷里个啷里个啷个里个啷 | 来源:发表于2016-11-24 10:38 被阅读0次

    UIView的缩放

    CGAffineTransform 提供了两个方法用于缩放,分别是CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)和CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)。

    1.1 CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)

    这个方法可以方便的对view的长和宽进行缩放,不改变view的中心点。注意!中心点不变指的是物理位置不变,不是坐标,因为坐标系此时已经发生改变。

    例如:对view进行0.5等比缩放:

    view.transform = CGAffineTransformMakeScale(0.5, 0.5);

    1.2 CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)

    这个方法同样是view的长和宽进行缩放,效果类似CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)不同的是这个方法可以叠加其他CGAffineTransform效果(比如旋转)

    例如:对view进行0.5等比缩放:

    view.transform = CGAffineTransformScale(view.transform, 0.5, 0.5);

    文/舒耀(简书作者)

    原文链接:http://www.jianshu.com/p/2ad2d850abed

    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

    UIView的旋转

    CGAffineTransform 提供了两个方法用于旋转,分别是CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle)和CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)。

    2.1 CGAffineTransformMakeRotation(CGFloat angle)

    这个方法可以方便的对view进行旋转,不改变view的中心点。注意!中心点不变指的是物理位置不变,不是坐标,因为坐标系此时已经发生改变。

    例如:对view进行45度旋转:

    view.transform = CGAffineTransformMakeRotation (M_PI_2);

    2.2 CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)

    这个方法同样是对view进行旋转,效果类似 CGAffineTransformMakeRotation(CGFloat angle)不同的是这个方法可以叠加其他CGAffineTransform效果(比如缩放)

    例如:对view进行45度旋转:

    view.transform =  CGAffineTransformRotate (view.transform, M_PI_2);

    文/舒耀(简书作者)

    原文链接:http://www.jianshu.com/p/2ad2d850abed

    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

    分别使用CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)和CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)替换上面的两个方法,具体代码如下:

    view.transform = CGAffineTransformScale(view.transform, 0.5, 0.5);

    view.transform =  CGAffineTransformRotate (view.transform, M_PI_2);

    文/舒耀(简书作者)

    原文链接:http://www.jianshu.com/p/2ad2d850abed

    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

    UIView的移动

    CGAffineTransformTranslate(<#CGAffineTransform t#>, <#CGFloat tx#>, <#CGFloat ty#>)可以叠加其他transform效果;

    CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>) 平移 不能叠加其他transform效果;

    抽屉效果

    现实抽屉

    _courseVC.view.transform=CGAffineTransformScale(CGAffineTransformIdentity,0.8,0.8);

    _courseVC.view.transform=CGAffineTransformTranslate(_courseVC.view.transform,CGRectGetWidth(MAINSCREEN) -130,0);

    返回

    _courseVC.view.transform=CGAffineTransformScale(CGAffineTransformIdentity,1.0,1.0);

    _courseVC.view.transform=CGAffineTransformTranslate(_courseVC.view.transform,0,0);

    相关文章

      网友评论

          本文标题:iOS中UIView 的旋转与缩放以及同时应用两种效果

          本文链接:https://www.haomeiwen.com/subject/rrjbpttx.html