2011-03-10 2 views

답변

1

본질적으로 당신이 원하는 것은 드래그하려는 각 뷰에 UIGestureRecognizer를 배치하는 것입니다. 인식기 호출 선택기에서 다음과 유사한 switch 문에 국가의 각 유형을 처리해야합니다

- (void)handleDragging:(UILongPressGestureRecognizer *)gestureRecognizer 
{  
    switch ([gestureRecognizer state]) 
    { 
     case UIGestureRecognizerStateBegan: 
      [self startDragging:gestureRecognizer]; 
      break; 
     case UIGestureRecognizerStateChanged: 
      [self doDrag:gestureRecognizer]; 
      break; 
     case UIGestureRecognizerStateEnded: 
     case UIGestureRecognizerStateCancelled: 
     case UIGestureRecognizerStateFailed: 
      [self stopDragging:gestureRecognizer]; 
      break; 
     default: 
      break; 
    } 
} 

이 3 진입 점을 제공 할 것입니다. startDrag에서 권하고 싶습니다. 스크롤 뷰에서 뷰를 제거하고 (모든 뷰가 내부에있는 경우) 뷰를 모든 뷰의 슈퍼 뷰에 추가하여 드래그하는 동안 맨 위에 표시되도록합니다. doDrag :보기의 위치를 ​​제스처의 위치로 이동하려고합니다. 마지막으로, stopDragging에서 : 뷰를 스크롤 위치 또는 다른 위치의 올바른 위치에 추가하십시오.

+0

이 답변에 대한 자세한 내용입니다. 구현시 몇 가지 문제가 수정되었습니다. – AWrightIV