ios开发--旋转、移动、缩放手势实例代码

代码如下:

C代码  

  1. // 添加所有的手势
  2. - (void) addGestureRecognizerToView:(UIView *)view
  3. {
  4. // 旋转手势
  5. UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)];
  6. [view addGestureRecognizer:rotationGestureRecognizer];
  7. // 缩放手势
  8. UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];
  9. [view addGestureRecognizer:pinchGestureRecognizer];
  10. // 移动手势
  11. UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)];
  12. [view addGestureRecognizer:panGestureRecognizer];
  13. }
  14. // 处理旋转手势
  15. - (void) rotateView:(UIRotationGestureRecognizer *)rotationGestureRecognizer
  16. {
  17. UIView *view = rotationGestureRecognizer.view;
  18. if (rotationGestureRecognizer.state == UIGestureRecognizerStateBegan || rotationGestureRecognizer.state == UIGestureRecognizerStateChanged) {
  19. view.transform = CGAffineTransformRotate(view.transform, rotationGestureRecognizer.rotation);
  20. [rotationGestureRecognizer setRotation:0];
  21. }
  22. }
  23. // 处理缩放手势
  24. - (void) pinchView:(UIPinchGestureRecognizer *)pinchGestureRecognizer
  25. {
  26. UIView *view = pinchGestureRecognizer.view;
  27. if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan || pinchGestureRecognizer.state == UIGestureRecognizerStateChanged) {
  28. view.transform = CGAffineTransformScale(view.transform, pinchGestureRecognizer.scale, pinchGestureRecognizer.scale);
  29. pinchGestureRecognizer.scale = 1;
  30. }
  31. }
  32. // 处理拖拉手势
  33. - (void) panView:(UIPanGestureRecognizer *)panGestureRecognizer
  34. {
  35. UIView *view = panGestureRecognizer.view;
  36. if (panGestureRecognizer.state == UIGestureRecognizerStateBegan || panGestureRecognizer.state == UIGestureRecognizerStateChanged) {
  37. CGPoint translation = [panGestureRecognizer translationInView:view.superview];
  38. [view setCenter:(CGPoint){view.center.x + translation.x, view.center.y + translation.y}];
  39. [panGestureRecognizer setTranslation:CGPointZero inView:view.superview];
  40. }
  41. }

别忘了

Java代码  

  1. [self addGestureRecognizerToView:view];

如果处理的是图片,别忘了

C代码  

  1. [imageView setUserInteractionEnabled:YES];
  2. [imageView setMultipleTouchEnabled:YES];

ios开发--旋转、移动、缩放手势实例代码

时间: 2024-10-14 10:45:05

ios开发--旋转、移动、缩放手势实例代码的相关文章

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

iOS开发-植入广告(iAd, Admob实例)

应用中植入广告是一种很好的盈利手段. 下面介绍主流的两种方法.iAd, Admob 先mark一个很详细的pdf.   http://pan.baidu.com/share/link?shareid=1656439633&uk=1394536315&fid=406566606116897 一.iAd 1.需要加入iAd.framework 2.   .h文件加入如下代码 #import <UIKit/UIKit.h> #import <iAd/iAd.h> @int

IOS开发系列--Objective-C之协议、代码块、分类

概述 ObjC的语法主要基于smalltalk进行设计的,除了提供常规的面向对象特性外,还增加了很多其他特性,这一节将重点介绍ObjC中一些常用的语法特性.当然这些内容虽然和其他高级语言命名不一样,但是我们都可以在其中找到他们的影子,在文章中我也会对比其他语言进行介绍,这一节的重点内容如下: 协议protocol 代码块block 分类category 协议protocol 在ObjC中使用@protocol定义一组方法规范,实现此协议的类必须实现对应的方法.熟悉面向对象的童鞋都知道接口本身是对

iOS开发中经常用的实用代码合集

iOS开发中经常用的实用代码合集 本文整理了,在iOS开发中我们所遇到一些开发问题的技巧类的代码,让你在开发过程中避免了很多弯路,希望能给你的开发带来帮助和启发. 1.判断邮箱格式是否正确的代码: // 利用正则表达式验证 -( BOOL )isValidateEmail:( NSString  *)email { NSString  *emailRegex =  @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}&

iOS开发——实用技术OC篇&amp;8行代码教你搞定导航控制器全屏滑动返回效果

8行代码教你搞定导航控制器全屏滑动返回效果 前言 此次文章,讲述的是导航控制器全屏滑动返回效果,而且代码量非常少,10行内搞定. 效果如图: 如果喜欢我的文章,可以关注我,也可以来小码哥,了解下我们的iOS培训课程.陆续还会有更新ing.... 一.自定义导航控制器 目的:以后需要使用全屏滑动返回功能,就使用自己定义的导航控制器. 二.分析导航控制器侧滑功能 效果:导航控制器默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能. 系统自带的侧滑效果: 分析: 1.导航控制器的view

iOS开发 偷懒小技巧---自定义XCode代码片段

有句话说的好,聪明的程序员懂得"偷懒"来提升开发效率.我们在日常开发中,有一些代码片段会经常利用到,大家可能会觉得定义一些宏可以解决问题,但是遇到比如,UITableView的协议方法,或者写Demo时候想要快速的定义一个UIButton(当然,你用storyboard除外)呢? 好吧,先来介绍下什么是代码片段? 我们在XCode中输入if,选择ifelse后回车,出现 这个就是系统给我们已经定义好的代码片段,能够快速的完成我们想要的代码片段,来大大的提升程序员的编程效率,我们所要做的

IOS开发—6种常用手势UIGestureRecognizer介绍

IOS 6种常用手势介绍 // // ViewController.m //  手势 // //  Created by Lotheve on 15/6/13. //  Copyright (c) 2015年Lotheve. All rights reserved. // #import "ViewController.h" @interface ViewController () { UITapGestureRecognizer *_tap;   //点击 UIPanGestureR

iOS开发——仿Clear纯手势操作的UITableView

前言 在Clear应用中,用户无需任何按钮,纯靠不同的手势就可以完成对ToDoItem的删除.完成.添加.移动.具体来说,功能上有左划删除,右划完成,点击编辑,下拉添加.捏合添加.长按移动.这里将这些功能实现并记录. 左划删除与右划完成 所谓的左右滑动,就是自定义一个cell然后在上面添加滑动手势.在处理方法中计算偏移量,如果滑动距离超过cell宽度一半,就删除它,或者是为文本添加删除线等来完成它:如果没有超过一半,那么就用动画把cell归位. 效果图如下: 关键代码如下: - (void)ha

iOS开发-ScrollView图片缩放

智能手机一般常用常用的操作触摸,滑动,缩放,感觉对于生活而言就是手机在手,天下我有,看网页的时候字体太小,缩放一下,看美女的看的不爽,缩放一下,地图看的不清,缩放一下.缩放是一个很常见的操作,不论是从生活还是写程序而言,都是一个绕不开的东西,做了一个Demo,缩放一下美女,熟悉ScrollView中的常见属性的设置,开始正题吧. 常见属性 先看图,要实现的效果: UIImage *image=[UIImage imageNamed:@"girl0.jpg"]; _imageView=[