2012-03-30 5 views
0

UIImageViews간에 이미지를 끌어서 놓는 방법이 있는지 알고 싶습니다. 따라서 한 UIImageView에서 이미지를 끌면 다음 UIImageView에 가운데에 표시됩니다.UIImageViews 사이에서 이미지를 드래그 앤 드롭하고 가운데에 배치하는 방법은 무엇입니까?

내가하고있는 것은 내가 재미로 개발하고있는 아주 작은 체스 app이다. 나는 간단한 셋업을 가지고있다 : 보드의 배경과 모든 셀의 UIImageView. 지금까지 나는 UITouch 및 CGPoint를 사용하여 보드 주위에 & 이미지를 성공적으로 드래그 할 수있었습니다. 내 문제는 내 애플 리케이션에 & 이러한 이미지를 드래그 할 수 있습니다. 서로의 위에, 세포들 사이, 보드 경계 밖의 중간에 의미하는 등 ... 이것은 분명히 어떤 종류의 경계 문제입니다.

드래그 & 놓기 이벤트 처리에 대한 나의 코드 : 루프에 대한 소개

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

    CGPoint touchLocation = [touch locationInView:[self view]]; 

    for (UIImageView *piece in chessCells) { 
     if([touch view] == piece){ 
      piece.center = touchLocation; 
     } 
    } 

} 

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
    [self touchesBegan:touches withEvent:event]; 
} 

을 내 보드의 모든 세포가 UIImageViews 빈 IBOutlets이다, 나는있는 NSArray에서 그들을 유지하여 조직 소위 'chessCells' . 앱이 시작될 때 각각의 셀에 이미지를 표시하는 메소드가 있습니다. 이 시점에서 저는 그것들을 붙잡고 체스 판을 가로 질러 자유롭게 움직일 수있을 것입니다 ... 그러나 제가 발견 한 것처럼, 너무 자유롭게.

저는 수많은 포럼을 읽었으며 많은 설명서와 온라인 설명서를 읽었으므로이 작업을 수행하면서 많은 것을 배우기 때문에 전문 기술 부족을 용서하십시오.

어떤 도움을 주시면 감사하겠습니다 :)

답변

1

당신이 수행 할 수 yourImgFrame1교차 할 때이 코드를 사용하여 코드

if (CGRectIntersectsRect(yourImgFrame1, yourImgFrame2)) { 
    //do What ever you want 
} 

이 추가 CGRectIntersectRect와 yourImgFrame2을 시도해야 어떤 동작

행운을 빌어 요

관련 문제