调用系统手势完成动画

//

//  MyImageViewController.m

//  MyImageView

//

//  Created by lanou on 12-12-19.

//  Copyright (c) 2012 lanou. All rights reserved.

//

 

#import "MyImageViewController.h"

 

@interfaceMyImageViewController ()

 

@end

 

@implementation MyImageViewController

 

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

{

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

    if (self) {

        // Custom initialization

    }

    returnself;

}

 

-(void)loadView

{

    self.view = [[[UIViewalloc]initWithFrame:CGRectMake(0, 0, 320, 480)]autorelease];

    self.view.backgroundColor = [UIColorwhiteColor];

    

    NSArray * arr = [NSArrayarrayWithObjects:@"单击",@"移动",@"缩放",@"旋转",@"长按",@"轻扫", nil];

    self.seg = [[UISegmentedControlalloc]initWithItems:arr];

    self.seg.selectedSegmentIndex = 1;

    self.seg.frame = CGRectMake(0, 500, 320, 40);

    [self.segaddTarget:selfaction:@selector(touchWay:) forControlEvents:UIControlEventValueChanged];

    [self.viewaddSubview:self.seg];

    

    self.imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(10, 80, 300, 300)];

    UIImage *image = [UIImageimageNamed:@"lanou.png"];

    self.imageView.userInteractionEnabled = YES;

    [self.imageViewsetImage:image];

    [self.viewaddSubview:self.imageView];

    //点击

    self.tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap:)];

    self.tap.numberOfTapsRequired = 2;

    //移动

    self.pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];

    //缩放

    self.pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(pinch:)];

    //旋转

    self.rotate = [[UIRotationGestureRecognizeralloc]initWithTarget:selfaction:@selector(rotate:)];

    //长按

    self.longPress = [[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longPress:)];

    self.longPress.minimumPressDuration = 2;

    //轻扫

    self.swip = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swip:)];

    

    [self.swiprelease];

    [self.taprelease];

    [self.longPressrelease];

    [self.rotaterelease];

    [self.pinchrelease];

    [self.segrelease];

    [self.imageViewrelease];

}

 

-(void)touchWay:(UISegmentedControl *)seg

{

    for (UIGestureRecognizer *ges inself.imageView.gestureRecognizers) {

        [self.imageViewremoveGestureRecognizer:ges];

    }

    switch (seg.selectedSegmentIndex)

    {

        case 0:

            [self.imageViewaddGestureRecognizer:self.tap];

            break;

        case 1:

            [self.imageViewaddGestureRecognizer:self.pan];

        case 2:

            [self.imageViewaddGestureRecognizer:self.pinch];

            break;

        case 3:

            [self.imageViewaddGestureRecognizer:self.rotate];

            break;

        case 4:

            [self.imageViewaddGestureRecognizer:self.longPress];

            break;

        default:

            break;

    }

}

 

-(void)tap:(UITapGestureRecognizer *)seg

{

    self.view.backgroundColor = [UIColorcolorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

}

-(void)pinch:(UIPinchGestureRecognizer *)pinch

{

    float scale = [pinch scale];

    CGRect bounds = [[pinch view]bounds];

    bounds.size.width *= scale;

    bounds.size.height *=scale;

    [pinch view].bounds = bounds;

    pinch.scale = 1;

}

-(void)pan:(UIPanGestureRecognizer *)pan

{

    CGPoint p = [pan translationInView:pan.view];

    pan.view.transform = CGAffineTransformMakeTranslation(p.x, p.y);

}

-(void)rotate:(UIRotationGestureRecognizer *)rotate

{

    [rotate view].transform = CGAffineTransformMakeRotation(rotate.rotation);

}

-(void)longPress:(UILongPressGestureRecognizer *)longPess

{

    self.view.backgroundColor = [UIColorcolorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1];

}

-(void)swip:(UISwipeGestureRecognizer *)swip

{

    

//    [swip view].transform = CGAffineTransformEqualToTransform(<#CGAffineTransform t1#>, <#CGAffineTransform t2#>)

}

 

- (void)viewDidLoad

{

    [superviewDidLoad];

// Do any additional setup after loading the view.

}

 

- (void)didReceiveMemoryWarning

{

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

@end

 

posted @ 2012-12-20 09:35  言程序  阅读(279)  评论(0)    收藏  举报