怎样实现UIView的旋转

时间:2022-09-27 15:40:04

首先创建界面,在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. 将自己打代码添加到cocoapods

    1,Github 上创建新站点 2, 从gitHub上 clone 一份,将源码拷贝到该目录下提交3,开源库发布之后,需要打上tag git tag 0.0.1 git push --tags git ...

  2. iOS---后台运行机制详解

    一.iOS的“伪后台”程序 首先,先了解一下iOS 中所谓的「后台进程」到底是怎么回事吧? Let me be as clear as I can be: the iOS multitasking b ...

  3. HttpClientUtil简介

    使用HttpClient发送请求.接收响应. http协议可以说是现在Internet上面最重要,使用最多的协议之一了,越来越多的java应用需要使用http协议来访问网络资源,HttpClient ...

  4. 成为 Linux 终端高手的七种武器 之七 条件执行&&

    7.条件执行 Bash 也可以连续执行两条命令。 第二条命令仅在第一条命令成功执行后才会开始执行。如要如此,你可以通过键入“&&”,也就是两个“&”字符进行分隔,在同一行输入两 ...

  5. PHP基础之 数组(二)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. PAT 基础编程题 4-11 求自定类型元素序列的中位数(希尔排序)

    4-11 求自定类型元素序列的中位数   (25分) 本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第\lfloor N/2 +1\rfloor⌊N/2+1⌋大的元素.其中集合元素的类型 ...

  7. es6学习笔记--let和const

    今天学习了es6中的let和const命令,借此整理一下笔记. let : let 和 var 的声明方式一样,但有 var 比不上的优点.下面用 var 和 let 的例子来加深对 let 的理解. ...

  8. centos查看系统版本

    显示系统版本 cat /etc/redhat-release cat /proc/version uname -a 查看位数 file /bin/ls

  9. P2147 &lbrack;SDOI2008&rsqb;洞穴勘测

    P2147 [SDOI2008]洞穴勘测 思路 没办法,我就是喜欢板子都想发的人 都是基础操作,不多说了 代码 #include <bits/stdc++.h> #define ls ch ...

  10. input默认显示当前时间

    方法一: // 获取当天的年月日 new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().get ...