手势行为

来源:互联网 发布:短信软件 编辑:程序博客网 时间:2024/05/01 20:52

@synthesize lastScale=_lastScale;

@synthesize lastRotation=_lastRotation;

@synthesize firstX=_firstX;

@synthesize firstY=_firstY;



// 缩放  

-(void)scale:(id)sender {  

    

   if([(UIPinchGestureRecognizer*)senderstate] == UIGestureRecognizerStateBegan) {  

        _lastScale = 1.0;  

    }  

    

    CGFloat scale = 1.0 - (_lastScale - [(UIPinchGestureRecognizer*)senderscale]);  

    

    CGAffineTransform currentTransform = tempView.transform;  

    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale);  

    

    [tempViewsetTransform:newTransform];  

    

   _lastScale = [(UIPinchGestureRecognizer*)senderscale];  

}  


// 旋转  

-(void)rotate:(id)sender {  

    

   if([(UIRotationGestureRecognizer*)senderstate] == UIGestureRecognizerStateEnded) {  

        

        _lastRotation = 0.0;  

        return;  

    }  

    

    CGFloat rotation = 0.0 - (_lastRotation - [(UIRotationGestureRecognizer*)senderrotation]);  

    

    CGAffineTransform currentTransform = tempView.transform;  

    CGAffineTransform newTransform = CGAffineTransformRotate(currentTransform,rotation);  

    

    [tempViewsetTransform:newTransform];  

    

   _lastRotation = [(UIRotationGestureRecognizer*)senderrotation];  

}  

// 移动  

-(void)move:(id)sender {  

    

    CGPoint translatedPoint = [(UIPanGestureRecognizer*)sendertranslationInView:self.view];  

    

   if([(UIPanGestureRecognizer*)senderstate] == UIGestureRecognizerStateBegan) {  

       _firstX = [tempViewcenter].x;  

       _firstY = [tempViewcenter].y;  

    }  

    

    translatedPoint =CGPointMake(_firstX+translatedPoint.x,_firstY+translatedPoint.y);  

    [tempViewsetCenter:translatedPoint];  

}








   UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizeralloc] initWithTarget:selfaction:@selector(scale:)];  

    [self.viewaddGestureRecognizer:pinchRecognizer];

    [pinchRecognizerrelease];

    

   UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizeralloc] initWithTarget:selfaction:@selector(rotate:)];  

    [self.viewaddGestureRecognizer:rotationRecognizer];

    [rotationRecognizerrelease];

    

    UIPanGestureRecognizer *panRecognizer = [[[UIPanGestureRecognizeralloc] initWithTarget:selfaction:@selector(move:)]autorelease];  

    [panRecognizersetMinimumNumberOfTouches:1];  

    [panRecognizersetMaximumNumberOfTouches:1];  

    [panRecognizer setDelegate:self];  

    [self.viewaddGestureRecognizer:panRecognizer];  


原创粉丝点击