2013-11-24 5 views
0

화면의 특정 영역에서 이미지를 이동하고 싶습니다. 나중에 충돌 동작에 문제를 일으키기 때문에 프레임을 어지럽히고 싶지 않습니다. far.I 도움이CGAffineTransformTranslate를 사용하여 터치하여 특정 영역의 이미지 이동

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    //CGPoint svpt = [[touches anyObject] locationInView:self.view]; 
    CGPoint pt = [[touches anyObject] locationInView:self.playerMove]; 
    CGRect frame = [self.playerMove frame]; 
    CGAffineTransform CGAT = CGAffineTransformIdentity; 
    CGAT = CGAffineTransformTranslate(CGAT, MIN(MAX(frame.origin.x, -10), 240), MIN(MAX(frame.origin.y, 430), 430)); 
    self.playerMove.transform = CGAT; 
} 

답변

0

당신은 팬 제스처 인식기를 사용하기위한 터치 감사를 사용하는 방법을 알고하지 않도록이 코드를 얻었다.

UIPanGestureRecognizer *gr = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 
[self.playerMove addGestureRecognizer:gr]; 
self.playerMove.userInteractionEnabled = YES; 

그런 다음 나중에 ... 이미지가 움직이지

- (void)handlePan:(UIPanGestureRecognizer *)gr { 

    if (gr.state == UIGestureRecognizerStateBegan || gr.state == UIGestureRecognizerStateChanged) { 
     UIView *view = gr.view; 
     CGPoint translation = [gr translationInView:view]; 
     view.transform = CGAffineTransformTranslate(view.transform, translation.x, translation.y); 
     [gr setTranslation:CGPointZero inView:view]; 
    } 
} 
+0

... 내가있는 viewDidLoad에서 코드와 사용 handlePan 방법 의 처음 두 줄이라고 그리고 또한 어떻게 설정 내가 이미지를 옮길 지역의 경계 ?? –

+0

흠. 나는 방금 테스트를했고, 불완전한 동안. 이것은 나를 위해 작동합니다. playerMove 뷰에 userInteractionEnabled = YES가 있는지 확인하십시오. – danh

+0

응답을 편집하여 userInteractionEnabled에 대한 알림을 추가하고 인식간에 번역 상태를 다시 설정하기 위해 팬 코드를 개선했습니다. – danh