iOS 各种手势

UITapGestureRecongnizer 检测view上的单击操作

新建Empty Application项目,在xib中添加ImageView控件,Mode为Aspect Fit,选中User Interaction Enabled和Multiple Touch

HomeViewController.h

#import <UIKit/UIKit.h>

@interface HomeViewController : UIViewController
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@end


HomeViewController.m 



#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
- (void)viewDidLoad
{
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

   [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

UIPinchGestureRecongnizer 检测view上两个手指的缩放操作

HomeViewController.m 
#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat lastScaleValue = 1;
- (void)viewDidLoad
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureHandler:)];
    [imageView addGestureRecognizer:pinchGesture];
    [pinchGesture release];

    [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (IBAction)pinchGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat scaleValue = [(UIPinchGestureRecognizer *)sender scale];

//如果手指做放大操作,scaleValue的值大于等于1;如果手指是缩小操作,scaleValue的值小于1

    if (scaleValue > 1) {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + (scaleValue-1), lastScaleValue + (scaleValue-1));
    }else {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scaleValue, lastScaleValue * scaleValue);
    } 

//用户的手指离开了屏幕,将比例值记录在 lastScaleValue 变量中

    if (sender.state == UIGestureRecognizerStateEnded) {
        if (scaleValue > 1) {
            lastScaleValue += (scaleValue - 1);
        }else {
            lastScaleValue += scaleValue;
        }
    }


}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

UIRotationGestureRecongnizer 检测view的旋转操作

#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat lastScaleValue = 1;
CGFloat rotationValue;
- (void)viewDidLoad
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureHandler:)];
    [imageView addGestureRecognizer:pinchGesture];
    [pinchGesture release];

    UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureHandler:)];
    [imageView addGestureRecognizer:rotationGesture];
    [rotationGesture release];

    [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (IBAction)pinchGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat scaleValue = [(UIPinchGestureRecognizer *)sender scale];

    if (scaleValue > 1) {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + (scaleValue-1), lastScaleValue + (scaleValue-1));
    }else {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scaleValue, lastScaleValue * scaleValue);
    } 

    if (sender.state == UIGestureRecognizerStateEnded) {
        if (scaleValue > 1) {
            lastScaleValue += (scaleValue - 1);
        }else {
            lastScaleValue += scaleValue;
        }
    }


}
- (IBAction)rotationGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat rotation = [(UIRotationGestureRecognizer *)sender rotation];
    CGAffineTransform transform = CGAffineTransformMakeRotation(rotation + rotationValue);

    sender.view.transform = transform;

    if (sender.state == UIGestureRecognizerStateEnded) {
        rotationValue += rotation;
    }
}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

UIPanGestureRecongnizer 检测view的拖拽操作

 #import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat lastScaleValue = 1;
CGFloat rotationValue;
CGPoint positionValue;
- (void)viewDidLoad
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureHandler:)];
    [imageView addGestureRecognizer:pinchGesture];
    [pinchGesture release];

    UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureHandler:)];
    [imageView addGestureRecognizer:rotationGesture];
    [rotationGesture release];

    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureHandler:)];
    [imageView addGestureRecognizer:panGesture];
    [panGesture release];

    [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (IBAction)pinchGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat scaleValue = [(UIPinchGestureRecognizer *)sender scale];

    if (scaleValue > 1) {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + (scaleValue-1), lastScaleValue + (scaleValue-1));
    }else {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scaleValue, lastScaleValue * scaleValue);
    } 

    if (sender.state == UIGestureRecognizerStateEnded) {
        if (scaleValue > 1) {
            lastScaleValue += (scaleValue - 1);
        }else {
            lastScaleValue += scaleValue;
        }
    }


}
- (IBAction)rotationGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat rotation = [(UIRotationGestureRecognizer *)sender rotation];
    CGAffineTransform transform = CGAffineTransformMakeRotation(rotation + rotationValue);

    sender.view.transform = transform;

    if (sender.state == UIGestureRecognizerStateEnded) {
        rotationValue += rotation;
    }
}
- (IBAction)panGestureHandler:(UIGestureRecognizer *)sender{
    CGPoint position = [(UIPanGestureRecognizer *)sender translationInView:imageView];
    sender.view.transform = CGAffineTransformMakeTranslation(position.x + position.x, 
                                                             position.y + position.y);

    if (sender.state == UIGestureRecognizerStateEnded) {
        positionValue.x += position.x;
        positionValue.y += position.y;
    }
}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

UISwipeGestureRecongnizer 检测view的轻划操作

#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat lastScaleValue = 1;
CGFloat rotationValue;
CGPoint positionValue;
NSArray *images;
int imageIndex = 0;
- (void)viewDidLoad
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureHandler:)];
    [imageView addGestureRecognizer:pinchGesture];
    [pinchGesture release];

    UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureHandler:)];
    [imageView addGestureRecognizer:rotationGesture];
    [rotationGesture release];

    /*注释panGesture的拖拽操作,否则划动和拖拽操作会产生混淆
    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureHandler:)];
    [imageView addGestureRecognizer:panGesture];
    [panGesture release];
    */

    images = [[NSArray alloc] initWithObjects:@"iphone.png", @"mm.jpg", @"avatar.png", nil];

    //默认情况下是向右的手势划动
    UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGestureHandler:)];
    [imageView addGestureRecognizer:swipeGesture];
    [swipeGesture release];

    //定义向左的手势划动
    UISwipeGestureRecognizer *swipeLeftGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGestureHandler:)];
    swipeLeftGesture.direction = UISwipeGestureRecognizerDirectionLeft;
    [imageView addGestureRecognizer:swipeLeftGesture];
    [swipeLeftGesture release];


    [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (IBAction)pinchGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat scaleValue = [(UIPinchGestureRecognizer *)sender scale];

    if (scaleValue > 1) {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + (scaleValue-1), lastScaleValue + (scaleValue-1));
    }else {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scaleValue, lastScaleValue * scaleValue);
    } 

    if (sender.state == UIGestureRecognizerStateEnded) {
        if (scaleValue > 1) {
            lastScaleValue += (scaleValue - 1);
        }else {
            lastScaleValue += scaleValue;
        }
    }


}
- (IBAction)rotationGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat rotation = [(UIRotationGestureRecognizer *)sender rotation];
    CGAffineTransform transform = CGAffineTransformMakeRotation(rotation + rotationValue);

    sender.view.transform = transform;

    if (sender.state == UIGestureRecognizerStateEnded) {
        rotationValue += rotation;
    }
}
- (IBAction)panGestureHandler:(UIGestureRecognizer *)sender{
    CGPoint position = [(UIPanGestureRecognizer *)sender translationInView:imageView];
    sender.view.transform = CGAffineTransformMakeTranslation(position.x + position.x, 
                                                             position.y + position.y);

    if (sender.state == UIGestureRecognizerStateEnded) {
        positionValue.x += position.x;
        positionValue.y += position.y;
    }
}
- (IBAction)swipeGestureHandler:(UIGestureRecognizer *)sender{
    UISwipeGestureRecognizerDirection direction =[(UISwipeGestureRecognizer *)sender direction];

    switch (direction) {
        case UISwipeGestureRecognizerDirectionUp:
            NSLog(@"向上划动");
            break;
            case UISwipeGestureRecognizerDirectionDown:
            NSLog(@"向下划动");
            break;
            case UISwipeGestureRecognizerDirectionLeft:
            imageIndex++;
            break;
            case UISwipeGestureRecognizerDirectionRight:
            imageIndex--;
            break;
            default:
            break;
    }
    imageIndex = (imageIndex < 0) ? ([images count] - 1):imageIndex % [images count];
    imageView.image = [UIImage imageNamed:[images objectAtIndex:imageIndex]];
}
- (void)dealloc {
    [images release];
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

UILongPressGestureRecongnizer 检测view上的长按操作

添加UIActionSheetDelegate协议

HomeViewController.h 

#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController
<UIActionSheetDelegate>{}
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@end
HomeViewController.m

 #import "HomeViewController.h"

@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat lastScaleValue = 1;
CGFloat rotationValue;
CGPoint positionValue;
NSArray *images;
int imageIndex = 0;
- (void)viewDidLoad
{

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGestureHandler:)];
    [imageView addGestureRecognizer:pinchGesture];
    [pinchGesture release];

    UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureHandler:)];
    [imageView addGestureRecognizer:rotationGesture];
    [rotationGesture release];

    /*注释panGesture的拖拽操作,否则划动和拖拽操作会产生混淆
    UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureHandler:)];
    [imageView addGestureRecognizer:panGesture];
    [panGesture release];
    */

    images = [[NSArray alloc] initWithObjects:@"iphone.png", @"mm.jpg", @"avatar.png", nil];

    //默认情况下是向右的手势划动
    UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGestureHandler:)];
    [imageView addGestureRecognizer:swipeGesture];
    [swipeGesture release];

    //定义向左的手势划动
    UISwipeGestureRecognizer *swipeLeftGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGestureHandler:)];
    swipeLeftGesture.direction = UISwipeGestureRecognizerDirectionLeft;
    [imageView addGestureRecognizer:swipeLeftGesture];
    [swipeLeftGesture release];

    //开始长按的内容部分
    UILongPressGestureRecognizer *longpressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longpressGestureHandler:)];
    longpressGesture.minimumPressDuration = 1;
    longpressGesture.allowableMovement = 15;
    longpressGesture.numberOfTouchesRequired = 1;

    [imageView addGestureRecognizer:longpressGesture];
    [longpressGesture release];


    [super viewDidLoad];
}
- (IBAction)tapGestureHandler:(UIGestureRecognizer *)sender{
    if (sender.view.contentMode == UIViewContentModeScaleAspectFit) {
        sender.view.contentMode = UIViewContentModeScaleAspectFill;
    } else {
        sender.view.contentMode = UIViewContentModeScaleAspectFit;
    }

}
- (IBAction)pinchGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat scaleValue = [(UIPinchGestureRecognizer *)sender scale];

    if (scaleValue > 1) {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + (scaleValue-1), lastScaleValue + (scaleValue-1));
    }else {
        sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scaleValue, lastScaleValue * scaleValue);
    } 

    if (sender.state == UIGestureRecognizerStateEnded) {
        if (scaleValue > 1) {
            lastScaleValue += (scaleValue - 1);
        }else {
            lastScaleValue += scaleValue;
        }
    }


}
- (IBAction)rotationGestureHandler:(UIGestureRecognizer *)sender{
    CGFloat rotation = [(UIRotationGestureRecognizer *)sender rotation];
    CGAffineTransform transform = CGAffineTransformMakeRotation(rotation + rotationValue);

    sender.view.transform = transform;

    if (sender.state == UIGestureRecognizerStateEnded) {
        rotationValue += rotation;
    }
}
- (IBAction)panGestureHandler:(UIGestureRecognizer *)sender{
    CGPoint position = [(UIPanGestureRecognizer *)sender translationInView:imageView];
    sender.view.transform = CGAffineTransformMakeTranslation(position.x + position.x, 
                                                             position.y + position.y);

    if (sender.state == UIGestureRecognizerStateEnded) {
        positionValue.x += position.x;
        positionValue.y += position.y;
    }
}
- (IBAction)swipeGestureHandler:(UIGestureRecognizer *)sender{
    UISwipeGestureRecognizerDirection direction =[(UISwipeGestureRecognizer *)sender direction];

    switch (direction) {
        case UISwipeGestureRecognizerDirectionUp:
            NSLog(@"向上划动");
            break;
            case UISwipeGestureRecognizerDirectionDown:
            NSLog(@"向下划动");
            break;
            case UISwipeGestureRecognizerDirectionLeft:
            imageIndex++;
            break;
            case UISwipeGestureRecognizerDirectionRight:
            imageIndex--;
            break;
            default:
            break;
    }
    imageIndex = (imageIndex < 0) ? ([images count] - 1):imageIndex % [images count];
    imageView.image = [UIImage imageNamed:[images objectAtIndex:imageIndex]];
}
- (IBAction)longpressGestureHandler:(UIGestureRecognizer *)sender{
    if ([(UILongPressGestureRecognizer *)sender state] == UIGestureRecognizerStateBegan) {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] 
                                      initWithTitle:@"图片操作" 
                                      delegate:self
                                      cancelButtonTitle:nil
                                      destructiveButtonTitle:nil
                                      otherButtonTitles:@"保存", @"复制", nil];

        [actionSheet showInView:self.view];
        [actionSheet release];
    }
}
- (void)dealloc {
    [images release];
    [imageView release];
    [super dealloc];
}
- (void)viewDidUnload {
    [self setImageView:nil];
    [super viewDidUnload];
}
@end

多点触摸识别

有些时候,我们只想简单地去识别用户在屏幕上的操作,而不是只针对某个特定的view,我们可以通过以下四个方法进行屏幕的触摸的识别。

touchesBegan:withEvent:当有一个或多个手指触摸屏幕时被触发。

touchesMoved:withEvent:当有一个或多个手指在屏幕上移动时被触发。

touchesEnded:withEvent:当有一个或多个手指离开屏幕时被触发。

touchesCancelled:withEvent: 当系统事件(内存溢出警告或者来电)发生时,取消触摸操作。

检测单点触摸

HomeViewController.h code:

#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@end


HomeViewController.m code: 
 #import "HomeViewController.h"

@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    NSSet *allTouches = [event allTouches];

    switch ([allTouches count]) {
        case 1:
        {
            UITouch *touch = [[allTouches allObjects] objectAtIndex:0];

            if ([touch tapCount] == 1 ) {
                imageView.contentMode = UIViewContentModeScaleAspectFit;
            }else if ([touch tapCount] == 2) {
                imageView.contentMode = UIViewContentModeScaleAspectFill;
            }
        }
            break;

        default:
            break;
    }
}
- (void)viewDidLoad
{
    [super viewDidLoad];
}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
@end

检测多点触摸

HomeViewController.h code:

#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
- (CGFloat)distance:(CGPoint)fromPoint toPoint:(CGPoint)toPoint;
@end
HomeViewController.m code:  

#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
@synthesize imageView;
CGFloat originalDistance;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    NSSet *allTouches = [event allTouches];

    switch ([allTouches count]) {
        case 1:{
            UITouch *touch = [[allTouches allObjects] objectAtIndex:0];

            if ([touch tapCount] == 1 ) {
                imageView.contentMode = UIViewContentModeScaleAspectFit;
            }else if ([touch tapCount] == 2) {
                imageView.contentMode = UIViewContentModeScaleAspectFill;
            }
        }
            break;
        case 2:{

            UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
            UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1];

            CGPoint touch1PT = [touch1 locationInView:[self view]];
            CGPoint touch2PT = [touch2 locationInView:[self view]];

            NSLog(@"Touch1:%.0f, %.0f", touch1PT.x, touch1PT.y);
            NSLog(@"Touch2:%.0f, %.0f", touch2PT.x, touch2PT.y);

            originalDistance = [self distance:touch1PT toPoint:touch2PT];

        }break;

        default:
            break;
    }
}
- (CGFloat)distance:(CGPoint)fromPoint toPoint:(CGPoint)toPoint{
    float lengthX = fromPoint.x - toPoint.x;
    float lengthY = fromPoint.y - toPoint.y;
    return sqrt((lengthX * lengthX) + (lengthY * lengthY));
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    NSSet *allTouches = [event allTouches];

    switch ([allTouches count]) {
        case 1:
            break;
    case 2:{

        UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
        UITouch *touch2 = [[allTouches allObjects] objectAtIndex:1];

        CGPoint touch1PT = [touch1 locationInView:[self view]];
        CGPoint touch2PT = [touch2 locationInView:[self view]];

        NSLog(@"Touch1:%.0f, %.0f", touch1PT.x, touch1PT.y);
        NSLog(@"Touch2:%.0f, %.0f", touch2PT.x, touch2PT.y);

        CGFloat currentDistance = [self distance:touch1PT toPoint:touch2PT];

        if (currentDistance > originalDistance) {
            imageView.frame = CGRectMake(imageView.frame.origin.x-2,imageView.frame.origin.y-2,
                                         imageView.frame.size.width+4, imageView.frame.size.height+4);
        }else {
            imageView.frame = CGRectMake(imageView.frame.origin.x+2, imageView.frame.origin.y+2,
                                         imageView.frame.size.width-4, imageView.frame.size.height-4);
        }
        originalDistance = currentDistance;
    }break;

        default:
            break;
    }
}
- (void)viewDidLoad
{
    [super viewDidLoad];
}
- (void)dealloc {
    [imageView release];
    [super dealloc];
}
@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值