UIKit 图片的移动、位移、旋转、缩放、翻转、翻页等特效的使用
来源:互联网 发布:曦力音视频转换mac版 编辑:程序博客网 时间:2024/06/05 07:41
UIKit 图片的移动、位移、旋转、缩放、翻转、翻页等特效的使用
OC的UIKit的框架,提供了许多对图片的出来函数,在这里只做几种简单的图片处理特效。
一边情况下 ,移动imageview 只需要改变它的frame属性,frame是CGRect结构体类型的,有 X,Y,W,H。改变他图片就会移动,而且还是做相应的缩放。为了添加渐变过程,就需要下面几个函数了。
[UIView beginAnimations:@"气球" context:@"移动"] ; //开始动画 两个参数是随便传的(因为到现在我也不知道 到底有什么用。)
[UIView setAnimationDuration:2] ;//动画在整个过程 持续 2秒
[UIView commitAnimations] ;// 提交动画 结束的意思。所有的动画操作都是在个函数之前完成的 。
CGAffineTransform aff ;
位移函数
aff = CGAffineTransformTranslate(imageView.transform, 20, 20) ;
旋转函数
CGAffineTransformRotate(imageView.transform, M_PI / 6) ;
缩放函数 1.2 ,1.2 为对imageView 放大 x y 分别放大 1.2倍。如果小于1 为缩小。
aff = CGAffineTransformScale(imageView.transform, 1.2, 1.2) ;
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:imageView cache:YES] ;
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:imageView cache:YES] ;
图片的上下翻页特效
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:imageView cache:YES] ;
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:imageView cache:YES] ;
去除所有的特效
CGAffineTransform aff = CGAffineTransformIdentity ;
下面是部分源码
UIViewController.h 文件
#import <UIKit/UIKit.h>@interface ViewController : UIViewController{ UIImageView *qq ,*bird; BOOL type ;}@end
UIViewControll.h 文件
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. qq = [[UIImageView alloc]initWithFrame:CGRectMake(20, 20, 166, 232)] ; qq.image = [UIImage imageNamed:@"/2.png"] ; [self.view addSubview:qq] ; bird = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, 45, 36)]; bird.image = [UIImage imageNamed:@"/1.png"] ; [qq addSubview:bird] ; NSArray *btnName = [NSArray arrayWithObjects:@"移动",@"位移",@"旋转",@"放大",@"翻转",@"翻页",@"复原",nil] ; for(int i =1; i< 8; i++) { UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect] ; btn.tag = i ; [btn setTitle:[btnName objectAtIndex:i-1] forState:UIControlStateNormal] ; btn.frame = CGRectMake(255, 30+60*(i -1), 60, 30) ; [self.view addSubview:btn] ; [btn addTarget:self action:@selector(doMove:) forControlEvents:UIControlEventTouchUpInside] ; } type = YES ; UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"正向",@"反向", nil]] ; segment.frame = CGRectMake(80, 370, 100, 30) ; segment.selectedSegmentIndex = 0 ; [segment addTarget:self action:@selector(changeType) forControlEvents:UIControlEventValueChanged] ; [self.view addSubview:segment] ;}-(void) changeType{ type = type?NO:YES ;}-(void)doMove:(UIButton*)sender{ [UIView beginAnimations:@"气球" context:@"移动"] ; [UIView setAnimationDuration:2] ; CGAffineTransform aff ; switch (sender.tag) { case 1://移动改变位置和大小 if(type) bird.frame = CGRectMake(150, 80, 80, 60) ; else bird.frame = CGRectMake(0, 100, 45, 36) ; break; case 2://位移 , 只 改变位置 { [UIView setAnimationDuration:2] ; if(type) aff = CGAffineTransformTranslate(qq.transform, 20, 20) ; else aff = CGAffineTransformTranslate(qq.transform, -20, -20) ; [qq setTransform:aff] ; } break; case 3://旋转 { if(type) aff = CGAffineTransformRotate(qq.transform, M_PI / 6) ; else aff = CGAffineTransformRotate(qq.transform, -M_PI / 6) ; [qq setTransform:aff] ; } break; case 4:// 缩放 ,倍数 大于 1 即放大 小于 1 缩小 { if(type) aff = CGAffineTransformScale(qq.transform, 1.2, 1.2) ; else aff = CGAffineTransformScale(qq.transform, 1/1.2, 1/1.2) ; [qq setTransform:aff] ; } break; case 5:// 翻转 if(type) [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:qq cache:YES] ; else [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:qq cache:YES] ; break; case 6://翻页 if(type) [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:qq cache:YES] ; else [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:qq cache:YES] ; break; case 7: { CGAffineTransform aff = CGAffineTransformIdentity ; [qq setTransform:aff] ; bird.frame = CGRectMake(0, 100, 45, 36) ; } break; default: break; } [UIView commitAnimations] ;}
2013-7-20 北京 石景山区
- UIKit 图片的移动、位移、旋转、缩放、翻转、翻页等特效的使用
- WPF图片控件的旋转、缩放、翻转
- WPF图片控件的旋转、缩放、翻转
- UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果
- 处理图片的缩放、旋转、裁剪和翻转这四种效果
- 处理图片的缩放、旋转、裁剪和翻转这四种效果
- 图片的简单特效翻页
- iOS 已经 实现 单指 旋转 缩放 位移 等操作,Transform的应用
- Android view的移动,旋转,缩放,透明等效果
- java图片旋转,缩放,翻转
- 图片旋转缩放翻转效果
- Canvas的应用,图片的移动、旋转、缩放
- 图片 旋转,缩放,移动
- Android matrix 控制图片的旋转、缩放、移动
- Android matrix 控制图片的旋转、缩放、移动
- Android matrix 控制图片的旋转、缩放、移动
- UIImageView实现图片移动,缩放、旋转的代码片段
- Android matrix 控制图片的旋转、缩放、移动
- “scanf扫描集”的初体验
- 【Python排序搜索基本算法】之冒泡排序
- github
- POJ3411--Paid Roads
- poj 3468 A Simple Problem with Integers(线段树区间更新 or 树状数组区间更新)
- UIKit 图片的移动、位移、旋转、缩放、翻转、翻页等特效的使用
- Makefile debug的经验
- TQ2440开发板open ssh移植
- 安卓的简单开发应用
- 安卓开发之意图对象篇 比如打电话 发短信
- 腾讯2012实习
- CloudSuite环境搭建
- Java设计模式透析之 —— 适配器(Adapter)
- Container With Most Water