2013-09-02 2 views
2

시작 지점과 끝 지점에서 끝점을 찾아야합니다.시작 지점과 스크롤 지점에서 끝점 좌표를 찾는 방법

나는 애니메이션을하고 있는데, 사용자가 뷰를 드래그 할 때 View을 움직여야한다. 그러면 화면 밖으로 빠져 나오고 원래 위치로 돌아온다.

지금은 UISwipeGestureRecognizer을 사용하여 이동 중에 스 와이프를 감지했습니다. 다음은 코드입니다.

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; 
    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; 
    UISwipeGestureRecognizer *swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; 
    UISwipeGestureRecognizer *swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)]; 

    // Setting the swipe direction. 
    [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; 
    [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight]; 
    [swipeUp setDirection:UISwipeGestureRecognizerDirectionUp]; 
    [swipeDown setDirection:UISwipeGestureRecognizerDirectionDown]; 

    // Adding the swipe gesture on image view 
    [_view1 addGestureRecognizer:swipeLeft]; 
    [_view1 addGestureRecognizer:swipeRight]; 
    [_view1 addGestureRecognizer:swipeUp]; 
    [_view1 addGestureRecognizer:swipeDown]; 

처리 출근

- (void)handleSwipe:(UISwipeGestureRecognizer *)swipe { 

    CGPoint movedPoint = [swipe locationInView:swipe.view]; 

    if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) { 
     NSLog(@"Left Swipe"); 

     CGPoint startPoint = _view1.frame.origin; 
     //Diffence Moved 
     float movedDiffence_X = startPoint.x - movedPoint.x; 
     float movedDiffence_Y = startPoint.y - movedPoint.y; 
     //How can I find END POINT BASED ON THIS DATA 

     [UIView animateWithDuration:1 animations:^{ 
      _view1.center = CGPointMake(movedDiffence_X *3,movedDiffence_Y *3); 
      _view1.transform = CGAffineTransformMakeRotation(-0.86); 
     } completion:^(BOOL finished) { 
      [UIView animateWithDuration:0.8 animations:^{ 
       _view1.center = CGPointMake(84, 240); 
       _view1.transform = CGAffineTransformMakeRotation(0.36); 
      } completion:^(BOOL finished) { 

      }]; 
     }]; 

    } 
    if (swipe.direction == UISwipeGestureRecognizerDirectionRight) { 
     NSLog(@"Right Swipe"); 
     CGPoint startPoint = _view1.frame.origin; 
     //Diffence Moved 
     float movedDiffence_X = startPoint.x - movedPoint.x; 
     float movedDiffence_Y = startPoint.y - movedPoint.y; 

     //How can I find 

     [UIView animateWithDuration:1 animations:^{ 
      _view1.center = CGPointMake(movedDiffence_X *3,movedDiffence_Y *3); 
      _view1.transform = CGAffineTransformMakeRotation(-0.86); 
     } completion:^(BOOL finished) { 
      [UIView animateWithDuration:0.8 animations:^{ 
       _view1.center = CGPointMake(84, 240); 
       _view1.transform = CGAffineTransformMakeRotation(0.36); 
      } completion:^(BOOL finished) { 

      }]; 
     }]; 
    } 

    if (swipe.direction == UISwipeGestureRecognizerDirectionUp) { 
     NSLog(@"Up Swipe"); 

     CGPoint startPoint = _view1.frame.origin; 
     //Diffence Moved 
     float movedDiffence_X = startPoint.x - movedPoint.x; 
     float movedDiffence_Y = startPoint.y - movedPoint.y; 

     //How can I find 

     [UIView animateWithDuration:1 animations:^{ 
      _view1.center = CGPointMake(movedDiffence_X *3,movedDiffence_Y *3); 
      _view1.transform = CGAffineTransformMakeRotation(-0.86); 
     } completion:^(BOOL finished) { 
      [UIView animateWithDuration:0.8 animations:^{ 
       _view1.center = CGPointMake(84, 240); 
       _view1.transform = CGAffineTransformMakeRotation(0.36); 
      } completion:^(BOOL finished) { 

      }]; 
     }]; 
    } 
    if (swipe.direction == UISwipeGestureRecognizerDirectionDown) { 
     NSLog(@"Down Swipe"); 

     CGPoint startPoint = _view1.frame.origin; 
     //Diffence Moved 
     float movedDiffence_X = startPoint.x - movedPoint.x; 
     float movedDiffence_Y = startPoint.y - movedPoint.y; 

     //How can I find 

     [UIView animateWithDuration:1 animations:^{ 
      _view1.center = CGPointMake(movedDiffence_X *3,movedDiffence_Y *3); 
      _view1.transform = CGAffineTransformMakeRotation(-0.86); 
     } completion:^(BOOL finished) { 
      [UIView animateWithDuration:0.8 animations:^{ 
       _view1.center = CGPointMake(84, 240); 
       _view1.transform = CGAffineTransformMakeRotation(0.36); 
      } completion:^(BOOL finished) { 

      }]; 
     }]; 
    } 

} 

enter image description here

그때 1 위 뷰를 스 와이프 나는 SwipeHadler에 (handleSwipe) 방법

그래서

을 지점을 이전받을 수있는 경우 스 와이프 방향을 감지 할 수 있습니다. 하지만 제 문제는 화면에서 No.1 View를 통과해야한다는 것입니다. 그 때문에 끝점을 찾아야합니다.

그래서 어떻게 시작점과 MovedPoint에서 끝점을 찾을 수 있습니까 ??

미리 감사드립니다.

답변