2009-06-11 5 views
16

iPhone 응용 프로그램에서 몇 가지 기본적인 드래그/드롭 기능을 사용하려고합니다. 다음과 같이이 일을하려고에 대한iPhone 드래그/드롭

내 현재 코드 :

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event 
{ 
    UITouch *touch = [touches anyObject]; 

    CGPoint location = [touch locationInView:self]; 
    self.center = location; 
} 

이 코드는 주변의 터치를 다음하면서 터치 된 UIView의이 깜박 거리는의 결과가 있습니다. 약간의 주위를 놀고 난 후에, 나는 또한 UIView가 화면의 0,0 위치에서 현재 터치 된 위치까지 깜박이는 것처럼 보였다.

내가 잘못하고있는 아이디어가 있습니까?

+0

보기가이 위치에 있습니까? 앱에서 어떤 견해를 갖고 있습니까? –

+0

응용 프로그램은 단일보기를 사용하여 대화식 구성 요소의 하위보기와 함께 렌더링합니다. 이 코드는 UIImageView에서 상속받은 클래스 구현에 있습니다. – Simon

답변

21

superview의 좌표계에서 center 속성을 지정해야하지만 터치 이벤트에 하위보기 측면에서 위치를 요청했습니다. 대신 다음과 같이 superview의 좌표를 기반으로 요청하십시오.

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview 

    self.center = location; 
} 
+0

너무 뻔한 해결책을 찾지 못했습니다. 어리석은 나를. 내일 체크 아웃하고 결과와 함께 다시, 고마워! – Simon

+0

모든 작업이 끝났습니다. 다시 한 번 감사드립니다. – Simon