文档章节

动画-CGAffineTransform

hell03W
 hell03W
发布于 2016/06/27 18:39
字数 354
阅读 26
收藏 0

CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移操作.

transform 是一种状态,并且只有一种状态.

UIView的transform属性是一个结构体变量, 代表一种状态, 通过UIView的动画效果, 可以实现缩放, 旋转和平移操作.

- (IBAction)transition:(id)sender {
    
    // 1. 旋转操作, 参数是旋转的角度, 在原始的状态下创建一种新的状态
    //CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_4);
    
    // 2. 旋转操作, 第一个参数是参照的状态, 第二个参数是最终的参照状态上做形变的状态.
    //CGAffineTransform transform = CGAffineTransformRotate(self.imageView.transform, M_PI_4);
    
    // 3. 缩放操作, 参数是缩放的比例, 是原来的多少倍, 在原始状态下创建一种新的状态
    CGAffineTransform transform1 = CGAffineTransformMakeScale(0.5, 0.5);
    
    // 4. 缩放操作, 以指定的状态为参照转换到新的状态.
    //CGAffineTransform transform = CGAffineTransformScale(self.imageView.transform, 0.9, 0.9);
    
    // 5. 平移操作, 参数是在x,y轴上平移的距离
    //CGAffineTransform transform = CGAffineTransformMakeTranslation(20, 200);
    
    // 6. 平移操作
    //CGAffineTransform transform2 = CGAffineTransformTranslate(self.imageView.transform, 0, 200);
    
    // 7. 将两种形变 合并/混合到一块.
//    CGAffineTransform transform = CGAffineTransformConcat(transform1, transform2);

    // 8. 比较两个状态是否相等.
//    BOOL isEqual = CGAffineTransformEqualToTransform(<#CGAffineTransform t1#>, <#CGAffineTransform t2#>)
    
    // 9. 判断是不是原始状态
//    BOOL isIdentity = CGAffineTransformIsIdentity(<#CGAffineTransform t#>);
    
    // 10. 状态翻转, 放大变成缩小, 上移变成下移,
    CGAffineTransform transform = CGAffineTransformInvert(transform1);
    
    
    [UIView animateWithDuration:1.f animations:^{
        self.imageView.transform = transform;
    }];
    
    
    // 表示原始的状态 .
//    CGAffineTransformIdentity
    
}

© 著作权归作者所有

上一篇: 动画-CATransform3D
下一篇: 动画-CATransition
hell03W
粉丝 9
博文 145
码字总数 109892
作品 0
朝阳
程序员
私信 提问
Objective-c UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果

UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果 翻转的动画 [objc] view plaincopy //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimati......

_pioneer_
2015/12/31
747
0
IOS开发之UIView总结

如果想调用某个类的某个方法可以写成这样,这个方法来自NSObject类 performSelector: performSelector:withObject: performSelector:withObject:withObject: 实际调用 [self performSelector:...

北方人在上海
2016/03/21
17
0
Animation_ViewAnimation

Welcome to my blog. Thanks. Dome: github地址 ViewControllerAnimation 注:所有的动画我都封装起来了,这里不仅有present和dismiss在viewController中跳转,还有各种动画push和pop,当然v...

iOS小童
2017/11/24
0
0
UI_05 设计模式、⼿势识别器

⼀、target/action设计模式 耦合 耦合是衡量⼀个程序写的好坏的标准之⼀, 是衡量模块与模块之间关联程度的指标。 “⾼内聚,低耦合”是⾯向对象编程的核⼼思想。 使⽤target…action实现解耦...

黑伞将军
2015/08/20
0
0
Core Animation总结(六)知识点整理

Core Animation总结(一)图层变换(平面 立体) Core Animation总结(二)专用图层 Core Animation总结(三)动画 Core Animation总结(四) Core Animation总结(五)性能 Core Animation...

asjoker
2016/12/16
1
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式场景下如何保证消息队列实现最终一致性

考虑一个分布式场景中一个常见的场景:服务A执行某个数据库操作成功后,会发送一条消息到消息队列,现在希望只有数据库操作执行成功才发送这条消息。下面是一些常见的作法: 1. 先执行数据库...

中关村的老男孩
20分钟前
4
0
招银网络面试题、考点、知识点总结(Java岗)

java基础 全是基础不用多说肯定考的多,尤其是招银 OOP特性/java语言特性:封装、继承、多态 多态具体的表现:多态应用举例、如何调用父类方法(super)、重写和重载(重写父类方法的规则、构...

戎码益深
24分钟前
2
0
Mybatis深入源码分析之SQLSession一级缓存原理分析

源码分析图

须臾之余
28分钟前
2
0
成年人社交中的10个潜规则

前阵子我建议大家有空的时候,一定要去看《红楼梦》这本书。 原因就是从这本书,可以学习到很多很多人情世故,人情世故在学校里,老师几乎都不会教,所以我们只能靠自己去学。 只有自己去学了...

ZhangLG
30分钟前
3
0
在PyCharm中使用Pylint

简介 pylint是一个用于检查python代码中的错误,尝试强制执行编码标准的工具。它还可以查找某些类型错误,可以建议如何重构特定块的建议,并可以向您提供有关代码复杂性的详细信息。 官网:w...

哼_哼
30分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部