文档章节

UIView顺时针旋转、逆时针旋转

般若花
 般若花
发布于 2014/04/23 10:06
字数 411
阅读 7768
收藏 2

    由于项目需求,需要做点击向下剪头时,剪头逆时针旋转180度,再点击,顺时针旋转180度(恢复原位)

    因为我的基础不牢固,遇到这种知识点的问题就百度,但是网上找到的全是逆时针旋转,想改成顺时针,第一反应是把旋转角度前加“-”,可惜无果。后来,试了几个角度值,终于实现的UIView的顺时针旋转


逆时针旋转:

        //arrowLeft 是要旋转的控件
        //逆时针 旋转180度 
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.2]; //动画时长
        arrowLeft.transform = CGAffineTransformMakeRotation(180 *M_PI / 180.0);
        CGAffineTransform transform = arrowLeft.transform;
        //第二个值表示横向放大的倍数,第三个值表示纵向缩小的程度
        transform = CGAffineTransformScale(transform, 1,1);
        arrowLeft.transform = transform;
        [UIView commitAnimations];

顺时针旋转:

        //顺时针 旋转180度
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:0.2]; //动画时长
        arrowLeft.transform = CGAffineTransformMakeRotation(0*M_PI/180);
        CGAffineTransform transform = arrowLeft.transform;
        transform = CGAffineTransformScale(transform, 1,1);
        arrowLeft.transform = transform;

    正常想法,一个控件经历一次顺时针旋转180度之后(也就是执行一遍这个方法),再执行一遍,应该是回归原位。但是不知道为什么没有。可能是跟设置坐标类似吧,它旋转的时候不是以现在的角度为基准进行旋转,而是一定固定好要旋转到的角度。我现在是这么理解的。项目忙,没时间细深究,等有空要好好研究一下iOS的各种动画效果以及参数。

© 著作权归作者所有

共有 人打赏支持
般若花
粉丝 4
博文 7
码字总数 1799
作品 0
长宁
程序员
私信 提问
Qt5版NeHe OpenGL教程之三:旋转

这一课会把第二课中的三角形绕Y轴逆时针旋转45°,正方形绕X轴顺时针旋转45° 头文件中添加两个变量表示三角形和正方形旋转的角度。 private: 在构造函数中赋值 Lesson3::Lesson3(QWindow *...

caoshangpa
05/11
0
0
UIImage 工具类的方法详解

UIKit中有一些类可以用来操纵单个图像,还有一个图像类可以用来显示图像。Apple还提供了一种特殊的导航控制器,用于从图像库中选择图像。 UIImage类对图像及其底层数据进行封装。它可以直接绘...

创意总监
2014/11/08
0
0
CGImageSource对图像数据读取任务的抽象

来自:http://www.tanhao.me/pieces/1019.html/ 其中获取到的kCGImagePropertyPixelHeight和kCGImagePropertyPixelHeight的数值是原始的值,也就是旋转之前的数值,所以要获取到显示图像的宽...

水一样的人儿
2016/08/15
6
0
小蚂蚁学习数据结构(34)——平衡二叉树的概念

平衡二叉树的作用 由于二叉排序树的结构可能不平衡,导致对树的运算的时间复杂度增加。 调整二叉排序树的结构,使其始终成为平衡的状态——平衡二叉树。 平衡二叉树的定义 若一个二叉树中每个...

嗜学如命的小蚂蚁
2016/02/09
198
0
C算法编程题(五)“E”的变换

程序描述   给定7×7二维数组矩阵,元素由“0”或“1”组成,并且根据元素值屏幕显示“E”字形图案,其中“0”显示空格,“1”显示“@”。 如矩阵 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 ...

范大脚脚
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一文了解JVM全部垃圾回收器,从Serial到ZGC

《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同...

公众号_Zack说码
14分钟前
5
0
用七牛云做小程序直播不用资质只需要公安备案

一般做小程序需要到live-pusher和live-player 分别用于推拉流但要求太严格一般商户满足不了这种情况 暂只针对国内主体如下类目的小程序开放,需要先通过类目审核,再在小程序管理后台,“设置...

xiaogg
18分钟前
1
0
spring2

Spring第二天 回顾: IOC:控制反转,把对象的创建权利反转给spring框架。 IOC的作用:解耦 Spring中的工厂: ApplicationContext ClassPathXmlApplicationContext FileSystemXmlApplication...

码农屌丝
28分钟前
1
0
Postman请求向后台传递List数据

前后台分离项目,使用Postman对写好的接口进行测试,请求类型为Post需要向后台传递List<String> list数据下面是后台控制层的java代码 @RequestMapping(value = "/del",method = RequestMetho...

王子城
33分钟前
2
0
Java并发编程的艺术:Condition的实现分析

ConditionObject是同步器AbstractQueuedSynchronizer的内部类,因为Condition的操作需要获取相关联的锁,所以作为同步器的内部类也较为合理。每个Condition对象都包含着一个队列(以下称为等...

陈刚生
33分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部