UIView 常见翻转动画

2D动画

/**
 *  平移
 *
 *  @param transform 获取当前的形变 transform
 *  @param tx        沿着 x 水平方向的平移
 *  @param ty        沿着 y 垂直方向的平移
 *
 *  @return 返回移动之后的结果
 */
CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty)
/**
 *  缩放
 *
 *  @param transform 获取当前的形变 transform
 *  @param sx       水平方向缩放比例
 *  @param sy       垂直方向缩放比例
 *
 *  @return 缩放后结果
 */
CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
/**
 *  旋转
 *
 *  @param transform 获取当前的形变 transform
 *  @param angle     旋转角度
 *
 *  @return 返回旋转后的结果
 */
CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)
/**
 *  还原
 */
CGAffineTransformIdentity

Dmoe
//旋转  
self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, M_PI_4);  

//缩放   
self.imageView.transform = CGAffineTransformScale(self.imageView.transform, 0.9, 0.9);  

Y轴3D翻转

3D翻转.gif
- (void) rotateViewAnimated:(UIView*)view
           withDuration:(CFTimeInterval)duration
                byAngle:(CGFloat)angle
{
[CATransaction begin];
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];
rotationAnimation.byValue = [NSNumber numberWithFloat:angle];
rotationAnimation.duration = duration;
rotationAnimation.removedOnCompletion = YES;

[CATransaction setCompletionBlock:^{
    //view.transform = CGAffineTransformRotate(view.transform, angle);
}];

[view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
[CATransaction commit];
}

水平2D 旋转

2D 旋转.gif
- (void) rotateViewAnimated:(UIView*)view
           withDuration:(CFTimeInterval)duration
                byAngle:(CGFloat)angle
{
[CATransaction begin];
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.byValue = [NSNumber numberWithFloat:angle];
rotationAnimation.duration = duration;
rotationAnimation.removedOnCompletion = YES;

[CATransaction setCompletionBlock:^{
    //view.transform = CGAffineTransformRotate(view.transform, angle);
}];

[view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
[CATransaction commit];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 1,904评论 0 4
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,672评论 0 7
  • 官网中文版 1 简易天空替换## 技能:线性擦除,追踪运动,用颜色键K出人物,用色彩曲线调色。(1)天空图片素材放...
    朱细细阅读 11,044评论 4 82
  • CSS3简介 CSS3的现状 浏览器支持程度差,需要添加 私有前缀 ; 移动端支持优于PC端; 不断改进中; 应用...
    magic_pill阅读 841评论 0 1
  • 和一个相熟的女生聊天时惊讶的发现她居然是单身。之所以惊讶是因为她实在是太好了,声音好听,长相柔美,身材也不差,工作...
    若梦桐语阅读 143评论 0 0