首先创建界面,在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. << 链式重载

    #include <iostream> using namespace std; class Complex { private: int a, b; public: Complex(in ...

  2. Linux内核之旅 List_entry()

    #include "iostream" #define List_entry(type,member)\ (type *)(()->data)) ) using namesp ...

  3. spark on mesos 两种运行模式

    spark on mesos 有粗粒度(coarse-grained)和细粒度(fine-grained)两种运行模式,细粒度模式在spark2.0后开始弃用. 细粒度模式 优点 spark默认运行的 ...

  4. C#访问PostGreSQL数据库的方法 http://www.jb51.net/article/35643.htm

    这次的项目中的一个环节要求我把PostGreSQL数据取出来,然后放到SqlServer里,再去处理分析. http://www.jb51.net/article/35643.htm - 我对Post ...

  5. python入门语法总结 zz

    http://renjie120.iteye.com/blog/680126 1.python是一个解释性语言: 一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计 ...

  6. [待解决] sudo unable to resolve host

    怪哉怪哉, 大debian突然就出现了这个问题 , 问题的现象是只要使用 sudo 执行命令就会出现 sudo unable to resolve host </etc/hostname中的内容 ...

  7. SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]

    SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数   --创建表格 create table aa ( UserName varchar(50 ...

  8. JavaScript 闭包整合

    初遇闭包感觉很困惑,上网查看了些许介绍,有很多没看懂,就想先对能懂的东西整整 首先觉得要了解闭包,要先对一.JavaScript的变量作用域和作用域链有基本了解 1.变量的作用域分为:全局变量和局部变 ...

  9. MYSQL 下一些常用操作命令:新建用户、修改密码、修改登录host等

    1.登录服务器 mysql -u <用户名> -p 2.增加用户,并同时授权操作权限 grant select,insert,update,delete on <数据库>.* ...

  10. UnicodeDecodeError: ‘ascii’ codec can’t decode...: ordinal not in range(128 问题解决

    UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128 原 ...