怎样实现UIView的旋转
首先创建界面,在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的旋转的更多相关文章
- UIView 的旋转和缩放
原文地址:http://www.cnblogs.com/gaoxiao228/archive/2012/05/04/2483577.html label.transform = CGAffineTra ...
- UIView动画效果之----翻转.旋转.偏移.翻页.缩放.取反的动画效
翻转的动画 //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationDu ...
- View页面内容的旋转,在某些情况下可替代屏幕旋转使用
这个是在做小秘书的体重曲线图的时候用到的,横排的时候可以多显示些内容,可是由于很多未知的冲突导至屏幕旋转起来非常麻烦,可用用旋转页面的内容来达到旋转屏幕的效果. 代码如下: //旋转90度 CGAff ...
- ios开发--旋转、移动、缩放手势实例代码
代码如下: // 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecog ...
- UIView的基本属性及ANimation
frame属性:可以使用该属性改变尺寸和位置 相对于父视图bounds:改变尺寸 相对自身center:改变视图的位置alpha:改变视图的透明度backgroundColor:改变视图的背景cont ...
- 使用手势对UIImageView进行缩放、旋转和移动
// 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecognizer ...
- 旋转动画用控件RotateView
旋转动画用控件RotateView 最终效果: 源码: RotateView.h 与 RotateView.m // // RotateView.h // RotateAnimationView // ...
- 使用手势对UIImageView进行缩放、旋转和移动(转)
原文地址:http://blog.csdn.net/crazy_frog/article/details/8664108 // 添加所有的手势 - (void) addGestureRecognize ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
随机推荐
- C++: getline函数
转自http://blog.sina.com.cn/s/blog_60263c1c0101ck25.html 学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准s ...
- c++之路进阶——bzoj3343(教主的魔法)
F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser gryz2016 Logout 捐赠本站 Notice:由于本OJ ...
- SparkSQL基础应用(1.3.1)
一.概述 从1.3版本开始Spark SQL不再是测试版本,之前使用的SchemaRDD重命名为DataFrame,统一了Java和ScalaAPI. SparkSQL是Spark框架中处理结构化数据 ...
- server端推送消息机制
推送技术相关请参加WIKI: https://zh.wikipedia.org/wiki/%E6%8E%A8%E9%80%81%E6%8A%80%E6%9C%AF 场景: 监控系统:后台硬件温度.电压 ...
- ADIv5.2
ADI:ARM Debug Interface,出到现在共有五代: 1)version1 and version 2:只针对ARM7TDMI和ARM9的processor: 2)version 3:只 ...
- 「LAMP」在ubuntu及其衍生版上 安装LAMP
在Ubuntu上安装LAMP 此种方法在Linux Mint 13/14/15/16/17.Ubuntu 12.10(Quantal Quetzal)和Ubuntu 13.04 Raring Ring ...
- php原子操作,文件锁flock,数据库事务
php原子操作,文件锁flock,数据库事务 php没有继承posix标准支持的unix锁,只封装了一个linux系统调用flock(信号量也能做成锁),按理也是可以使用锁机制的,虽然效率低一点.ph ...
- linux内核参数优化
net.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route ...
- 连接ssh反应很慢,卡,延迟
1.关闭DNS反向解析在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭.# vi /etc/ssh/sshd_configUseDNS=no 在配置文件中,虽然U ...
- Linux Runtime PM介绍【转】
转自:http://blog.csdn.net/wlwl0071986/article/details/42677403 一.Runtime PM引言 1. 背景 (1)display的需求 (2)系 ...