首先创建界面,在viewDidLoad创建view以及button

相关代码如下

-(void)viewDidLoad

{

[super viewDidLoad];

viewDemo = [[UIView alloc] initWithFrame:CGRectMake(0, 50, 320, 50)];

[viewDemo setBackgroundColor:[UIColor brownColor]];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];

label.text =@"Test";

label.tag=100;

[viewDemo addSubview:label];

[self.view addSubview:viewDemo];

[label release];

// Do any additional setup after loading the view, typically from a nib.

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 400, 100, 50)];

[btn setBackgroundColor:[UIColor blueColor]];

btn.showsTouchWhenHighlighted = YES;

[btn setTitle:@"点击旋转" forState:UIControlStateNormal];

[self.view addSubview:btn];

btn.tag = 10010;

[btn addTarget:self action:@selector(testViewDemo) forControlEvents:UIControlEventTouchUpInside];

[btn release];

number = 0;

}

-(void)testViewDemo

{

number++;

if (number%3 == 0) {

CGAffineTransform at = CGAffineTransformMakeRotation(M_PI/2);

at = CGAffineTransformTranslate(at, 200, 0);

[viewDemo setTransform:at];

}else if (number%3 ==1 ){

CGAffineTransform at = CGAffineTransformMakeRotation(M_PI/1);

at = CGAffineTransformTranslate(at, 0, 0);

[viewDemo setTransform:at];

}else if(number%3 ==2){

CGAffineTransform at = CGAffineTransformMakeRotation(M_PI*2);

at = CGAffineTransformTranslate(at, 0, 0);

[viewDemo setTransform:at];

}

}

-(void)testViewDemo

{

//旋转,左旋

number++;

CGAffineTransform rotate = CGAffineTransformMakeRotation(number / 180.0 * M_PI );

[viewDemo setTransform:rotate];

}

如果使用此方法连续点击button就可以显示处一点一点的移动效果

每次旋转90度的话可以使用一下的代码实现效果

-(void)testViewDemo

{

//旋转,右旋

number = number+90.0;

CGAffineTransform rotate = CGAffineTransformMakeRotation(number / 180.0 * M_PI );

[viewDemo setTransform:rotate];

UIView实现左旋效果

//旋转,左旋

number = number-90.0;

CGAffineTransform rotate = CGAffineTransformMakeRotation(number / 180.0 * M_PI );

[viewDemo setTransform:rotate];

通过以上的讲解,我想,关于点击UIButton实现UIView的旋转大家就可以轻松的操作了。

传送门:

http://jingyan.baidu.com/article/3aed632e7164b070108091de.html

怎样实现UIView的旋转的更多相关文章

  1. UIView 的旋转和缩放

    原文地址:http://www.cnblogs.com/gaoxiao228/archive/2012/05/04/2483577.html label.transform = CGAffineTra ...

  2. UIView动画效果之----翻转.旋转.偏移.翻页.缩放.取反的动画效

    翻转的动画 //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationDu ...

  3. View页面内容的旋转,在某些情况下可替代屏幕旋转使用

    这个是在做小秘书的体重曲线图的时候用到的,横排的时候可以多显示些内容,可是由于很多未知的冲突导至屏幕旋转起来非常麻烦,可用用旋转页面的内容来达到旋转屏幕的效果. 代码如下: //旋转90度 CGAff ...

  4. ios开发--旋转、移动、缩放手势实例代码

    代码如下: // 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecog ...

  5. UIView的基本属性及ANimation

    frame属性:可以使用该属性改变尺寸和位置 相对于父视图bounds:改变尺寸 相对自身center:改变视图的位置alpha:改变视图的透明度backgroundColor:改变视图的背景cont ...

  6. 使用手势对UIImageView进行缩放、旋转和移动

    // 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecognizer  ...

  7. 旋转动画用控件RotateView

    旋转动画用控件RotateView 最终效果: 源码: RotateView.h 与 RotateView.m // // RotateView.h // RotateAnimationView // ...

  8. 使用手势对UIImageView进行缩放、旋转和移动(转)

    原文地址:http://blog.csdn.net/crazy_frog/article/details/8664108 // 添加所有的手势 - (void) addGestureRecognize ...

  9. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

随机推荐

  1. 详细介绍dll文件是什么

     DLL是Dynamic Link Library的缩写,意为动态链接库.DLL文件一般被存放在C:WindowsSystem目录下.DLL是一个包含可由多个程序同时使用的代码和数据的库. 在Wind ...

  2. 管理科学与工程 国内核心期刊 国外a刊及SCI

    国内: 管理科学与工程: 管理科学学报 A+   (匿名审稿,绝对牛刊,不比一般的SCi期刊的质量差) 系统工程理论与实践 A   (实名审稿,关系稿很多,尤其是挂编委的文章很多,但质量尚可)系统工程 ...

  3. Bug测试报告--俄罗斯方块--新蜂

    项目名:俄罗斯方块 组名:新蜂 测试者:韩媛媛(nice!团队) 用户需求规格说明书URL:http://www.cnblogs.com/Boxer1994/p/6084035.html 组长博客UR ...

  4. centos中的qt设计师所在的包

    由于暂时用不到qt的ide,所以想把它卸了,经过一番查找,其所在的包名是: qt-devel

  5. [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言

    受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天 ...

  6. 三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解

    在上节博客中曾提到过类的继承,这篇文章主要是介绍类的继承.构造函数以及静态代码块的执行顺序. 首先接着分析在黑马基础测试中的一个关于继承的题目,题目描述如下: 声明类Person,包含2个成员变量:n ...

  7. C++头文件为什么要加#ifndef #define #endif

    #ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时 ,就会出现大量“重定义”的错误.在头文件中实用#ifndef #de ...

  8. Openstack的镜像上传原理

    openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录,存储起来 通过glance-api请求接口 实际上glance-api也是提 ...

  9. Oracle体系结构总览(整理)

    先让我们来看一张图  这张就是Oracle 9i的架构全图.看上去,很繁杂.是的,是这样的.现在让我们来梳理一下:一.数据库.表空间.数据文件1.数据库数据库是数据集合.Oracle是一种数据库管理系 ...

  10. Linux系统中为php添加pcntl扩展的方法

    1.首先看下 phpize命令 所在的目录  (ps:我的目录/usr/bin/phpize)如果没有找到的话 执行安装yum install php53_devel (ps:请注意自己的版本) 安装 ...