要缩小通过两个触摸点的观点(iOS)

于AppDelegate.m档,创建一个视图控制器

#import "MAYAppDelegate.h"

#import "MAYViewController.h"

@implementation MAYAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

MAYViewController *root = [[MAYViewController alloc] init];

self.window.rootViewController = root;

[root release];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

创建一个视图控制器MAYViewController,在视图控制器MAYViewController.m文件里,创建一个视图

#import "MAYViewController.h"

#import "Touch.h"

@interface MAYViewController ()

@end

@implementation MAYViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

}

return self;

}

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor lightGrayColor];

Touch *touch = [[Touch alloc] initWithFrame:CGRectMake(50, 150, 200, 200)];

touch.backgroundColor = [UIColor greenColor];

[self.view addSubview:touch];

[touch release];

}

新建一个视图类Touch,加入在视图控制器上,在Touch.m文件里实现缩放功能

#import "Touch.h"

@implementation Touch

- (id)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

// Initialization code

//设置是否支持多点触摸(YES支持,NO不支持)

self.multipleTouchEnabled = YES;

}

return self;

}

//计算两点之间的距离

- (CGFloat)distance:(CGPoint)point1 point2:(CGPoint)point2

{

CGFloat dx = point1.x - point2.x;

CGFloat dy = point1.y - point2.y;

CGFloat tance = sqrt(pow(dx, 2) + pow(dy, 2));

return tance;

}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

{

if (1 == [touches count]) {

return;

}

//设置触摸点

NSArray *array = [touches allObjects];

UITouch *touch1 = [array firstObject];

UITouch *touch2 = [array lastObject];

//获取移动前的触摸点

CGPoint firstPreviousPoint = [touch1 previousLocationInView:self];

CGPoint secondPreviousPoint = [touch2 previousLocationInView:self];

//获取与移动后的触摸点

CGPoint firstCurrentPoint = [touch1 locationInView:self];

CGPoint secondCurrentPoint = [touch2 locationInView:self];

//获取移动前后的两点之间的距离

CGFloat previousDistance = [self distance:firstPreviousPoint point2:secondPreviousPoint];

CGFloat currentDistance = [self distance:firstCurrentPoint point2:secondCurrentPoint];

//获取缩放比例

CGFloat scanl = currentDistance / previousDistance;

//获得缩放后的视图大小

self.bounds = CGRectMake(0, 0, self.bounds.size.width * scanl, self.bounds.size.height * scanl);

}

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-09-29 06:12:05

要缩小通过两个触摸点的观点(iOS)的相关文章

Android与IOS的优缺点比较 对 Android 与 IOS 比较是个个人的问题。 就好比我来说,我两个都用。我深知这两个平台的优缺点。所以,我决定分享我关于这两个移动平台的观点。另外,然后谈谈我对新的 Ubuntu 移动平台的印象和它的优势。 IOS 的优点 虽然这些天我是个十足的 Android 用户,但我必须承认 IOS 在某些方面做的是不错。首先,苹果公司在他们的设备更新方面有更

Android与IOS的优缺点比较 对 Android 与 IOS 比较是个个人的问题. 就好比我来说,我两个都用.我深知这两个平台的优缺点.所以,我决定分享我关于这两个移动平台的观点.另外,然后谈谈我对新的 Ubuntu 移动平台的印象和它的优势. IOS 的优点 虽然这些天我是个十足的 Android 用户,但我必须承认 IOS 在某些方面做的是不错.首先,苹果公司在他们的设备更新方面有更好的成绩.这对于运行着 iOS 的旧设备来说尤其是这样.反观 Android ,如果不是谷歌亲生的 Ne

通过两个触摸点实现视图的缩放(iOS)

在AppDelegate.m文件中,创建视图控制器 #import "MAYAppDelegate.h" #import "MAYViewController.h" @implementation MAYAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.windo

代码截屏与触摸事件常用函数(iOS)

代码截屏分五步: 首先在视图控制器上创建一个视图 UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)]; aView.backgroundColor = [UIColor blackColor];[self.view addSubview:aView];[aView release]; 1.设置要截屏的图片大小 UIGraphicsBeginImageContext(aView.frame.size);

医疗APP初稿 这才是安卓风 触摸Material Design 向IOS说88!!!

   毕竟不是美工出生  色调搭配可能有些欠缺  本人安卓开发转产品  目前对材料设计的一些理解 画的公司初稿  纯属个人爱好  欢迎大家一起讨论

Android多点触摸交互处理,放大缩小图片

多点触摸(MultiTouch),指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术.与多点触摸技术相对应的就是单点触摸,单点触摸的设备已经有很多年了,小尺寸的有触摸式的手机,大尺寸的最常见的就是银行里的ATM机和排队查询机等等. 多点触摸技术在实际开发过程中,用的最多的就是放大缩小功能.比如有一些图片浏览器,就可以用多个手指在屏幕上操作,对图片进行放大或者缩小.再比如一些浏览器,也可以通过多点触摸放大或者缩小字体.其实放大缩小也只是多点触摸的实际应用样例之一,有了多点触摸技术,在一定

多点触摸的操作与图片放大缩小

1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.MotionEvent; 4 import android.view.View; 5 import android.widget.FrameLayout; 6 import android.widget.FrameLayout.LayoutParams; 7 import android.widget.ImageView; 8 9 pu

Android中的多点触摸

代码下载地址 代码一:自定义支持多点触摸的TextView http://download.csdn.net/detail/zhiyuan0932/9513852 什么是多点触摸 允许计算机用户同时通过多个手指来控制图形界面的一种技术 多点触摸的应用场景 对图片.文字.网页进行放大或者缩小 多手指手势操作自定义控件和布局 触摸事件的重要方法 event.getActionMasked(): 获取事件类型 在只使用单手指操作的时候,这个方法我们一般使用的是event.getAction(),来获取

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 运动事件:通过加速器进行触发(例如手机晃动) 远程控制事件:通过其他远程设备触发(例如耳机控制

转发:iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事