首先创建界面,在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. c++之路进阶——hdu3507(Print Article)

    参考博文:http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html//讲的真的很好,有个小错误,博客里的num全为sum,像我这种 ...

  2. 控件ListView

    ListView的简单用法,先在布局文件中添加ListView控件: 接下来修改MainActivity中的代码: 由上面的代码可以知道,数据是无法直接传递给ListView的,需要借助适配器来完成. ...

  3. PHP上传图片时,如何判断上传的文件是否为可用的图片文件

    利用getimagesize函数: function isImage($filename){$types = '.gif|.jpeg|.png|.bmp';//定义检查的图片类型if(file_exi ...

  4. linux下MYSQL备份与恢复

    1.用命令实现备份 数据库备份是很重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少.MySQLl提供了一个mysqldump命令,我们可以用它进行数据 ...

  5. windows系统调用 线程创建

    #include "windows.h" #include "iostream" using namespace std; class CWorkerThrea ...

  6. 自定义Scrollview--实现仿淘宝Toolbar透明度渐变效果

    ,上个月做了下电商的项目,本来以为本简单的,但做起来还是遇到了不少的问题,上个周五项目就上线了,不过时间还是很紧,PM给了我两天时间总结总结,然后又要开始一个新的项目和这个项目的迭代,感觉又要开始累死 ...

  7. Spark on Mesos部署

    一.Mesos的安装和部署 1.下载mesos源码和依赖包 部署环境 centOS 6.6 mesos-0.21.0 spark-1.4.1 因为mesos官方只提供源码,所以必须要自己进行编译安装使 ...

  8. XAMPP和Bugfree详细教程

    一.XAMPP安装配置 xampp是一款跨平台的集成 apache + mysql + php环境,是的配置AMP服务器变得简单轻松,支持windows,solaris, 下载地址:http://so ...

  9. 基于ASP.NET MVC 4/5 Razor的模块化/插件式架构实现

    概述 在日常开发中, 我们经常谈起模块化/插件化架构,这样可既可以提高开效率,又可以实现良好的扩展性,尤其对于产品化的系统有更好的实用性. 架构 我们采用的是MVC5(本文中介绍的方法对于MVC4也是 ...

  10. 在路由器 RT-AC68U 安装迅雷远程过程

    赶紧记录下,省得时间久了忘记.  步骤如下: 1.下载迅雷远程的 Linux 组件: http://pan.baidu.com/s/1jGqYPnw . 解压缩. 2.ssh 登录au68u 路由器 ...