2010-11-21 3 views
0

나는 이것이 (iPhone "touchesBegan" and "touchesMoved" message ... do not move to centre of touch) 전에 답변을 받았음을 알고있다. 그러나 나는 아이폰 개발에 새로운 것이므로 그 대답을 이해하지 못한다.아이폰 touchesBegan 구현을 이해하고 UIView 끌기

본질적으로, 내가하고 싶은 것은 터치에 반응하여 화면에서 움직이는 UIImageView입니다. Apple의 샘플은 touchesBegan이있을 때 센터를 터치 한 다음 뷰를 이동한다는 견해를 가지고 있습니다.

내가 좋아하는 것은 UIImagePicker를 사용할 때처럼 이미지를 팬하는 것입니다. 선택한 이미지가 터치에 고정되지 않고 대신 터치에서 이동합니다.

모든 도움을 주시면 감사하겠습니다.

답변

3

먼저 화면을 처음 만진 지점을 알아야합니다. 그런 다음 각 '터치 이동'에 대해 새 점에 대한 델타 x 및 y 좌표를 가져 와서 해당 양만큼 이미지를 이동하십시오.

// This is untested code and I can't even be sure if it compiles 
// Hopefully it is verbose enough to help you with that you are 
// Trying to do. If not I can update once I get back infront of 
// a Mac. 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    lastPoint = [touch locationInView:self.view]; 
    CGPoint delta = currentPoint - lastPoint; 

    currentViewLoc = imageView.center; 

    imageView.center.x = currentViewLoc.x - delta.x; 
    imageView.center.y = currentViewLoc.y - delta.y; 

    currentPoint = lastPoint; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    currentPoint = [touch locationInView:self.view]; 
} 

어쨌든. 내가 말하고자하는 바를 알기를 바랍니다.

+0

답변을 드릴 시간이 정말 고맙습니다. 그러나 초보자라면 실제 사용 방법을 확인하는 것이 유용할까요? – Paul

+0

은 의사 코드를 의사 코드로 업데이트했습니다. 희망이 도움이된다. – Svenito