2012-01-12 4 views
0

항목을 놓으려고 할 때 잘못된 영역에 항목이 떨어지면 원래 위치로 돌아갑니다. 여기 목표 C : 놓기 영역

내 코드입니다 : 오전
UITouch *touch =[[event allTouches] anyObject]; 
    CGPoint dropPoint = CGPointMake(60, 520); 
    location = [touch locationInView:self.view]; 


if([touch view]==image1 && CGPointEqualToPoint(location, dropPoint)){ 
    [image1 setFrame:CGRectMake(60, 520, 150, 184)]; 
    return; 
} else 
{ 
    [dad setFrame:CGRectMake(530, 225, 150, 184)]; 
} 

나는 내 실수는, 내가 드롭 영역 CGPoint를 사용했다고 생각하며 명령을 실행하는 경우 내가 전에 선언 한 그 지점에 정확하게 위치 할 필요가 맞지?

지금은 도움을 사전에 ... 그것을 해결하는 방법을

감사를 몰라! :)

답변

0

CGPoint가 CGFloats를 사용하기 때문에 (즉, 위치가 너무 정확해야 대부분의 사용자가 만들 수 있다고 생각하지는 않습니다), 가장 좋은 추측은 그것이 dropPoint 문제라는 것입니다.

CGRectContainsPoint(dropRect, location); 

참고 비교가 있음 : 두 개의 포인터만큼도 (같은 개체를 가리키는 경우

[touch view] == image1 

TRUE를 반환합니다 하나의 해결책은 CGRect를 사용하여 드롭 영역을 만들고 사용하여 비교하는 것이다 UITouches의 view 속성은 터치가 발생한 원래보기를 반환하고 현재보기는 반환하지 않음을 알고 있습니다.

+0

대단히 감사합니다! 일하고있어! :)) – SeongHo

0

이 줄

[touch view]==image1 

는 비교 포인터 객체는 그들이 가리 키도록하지. 이것은 귀하의 문제 일 수 있습니다. 쉬운 해결책은 UIViewtag 속성을 사용하여 touch에 대해 현재 view 인 이미지를 추적하는 것입니다.