2012-03-25 3 views
1

사용자가 회전하고 크기 조절할 수있는 이미지가 있습니다. 사용자가 이미지를 클릭 할 때마다 포인트가 투명한지 알아 내려고합니다.iphone - hittest의 포인트에서 CGAffineTransformRotate 적용

투명하면 내보기의 HitTest에 null이 반환되고 투명하지 않으면보기가 반환됩니다. 문제는 사용자가 이미지를 회전 할 때 시작됩니다. 내 hitTest 메서드에서 현재 뷰의 회전에 따라 점을 변환해야합니다. 그렇지 않으면 포인트는 뷰 (및 이미지)에서 관련성이없는 위치를 나타냅니다.

어떻게하면됩니까?

대단히 감사합니다.

CGPointApplyAffineTransform 

CGRectApplyAffineTransform 

CGSizeApplyAffineTransform 

을하지만 당신은 당신이 손으로 매핑을 수행 할 필요가 있다는 생각을 시작하기 전에, 나는 그것을 마치 시도 '를 제공하기 위해 제안 :

답변

2

CGAffineTransform Reference은 도움이 될 수 있습니다 '현재 변환은 CGAffineIdentity 였고 그에 따라 좌표 감지를 코드화했습니다. 당신은 ... 그 결과에 놀라게

내 자신의 경험은 당신이 그것을 당신에게 다시 넘겨 전에 SomeView의 반전 행렬이 시점에 적용되는 UITouch locationIn_SomeView_에서 포인트를 얻을 때처럼 보이는 것을 말한다 될 수 있습니다.

그래서 이벤트 시스템 외부에서 포인트를 직접 생성하지 않으면 CGxxxApplyAffineTransform이 필요하지 않습니다.

+0

감사합니다. 사실, 나는 uiview의 좌표계에 기회가 주어졌습니다. 그러나 이미지의 특정 픽셀의 색상을 확인하고 있기 때문에 충분하지 않은 것 같습니다. – vondip

+1

내 경우 엔 그렇습니다. 나는 삼각형 그 자체의 내부에서 완전히 투명한 픽셀을 가진 비 직사각형 이미지 (둥근 삼각형)를 가지고있다. 터치 감지가 "투명"픽셀에서 트리거되지 않도록하고 싶었습니다. 그래서 저는 여러분이 말한 것을했습니다. 즉, 직사각형 경계 *가 뷰 경계와 정렬 된 이미지의 픽셀 좌표에옵니다. "망막 배율 요소"를 1 분 동안 무시하면 뷰 경계 내의 모든 점이 이미지의 픽셀에 직접 매핑됩니다. 보기가 회전 할 때도 – verec

+0

사실 당신 말이 맞습니다! 방금 해봤 어. 당신은 ratina 모드에서 작동하지 않을 수도 있다고? – vondip

관련 문제