나는 사용자가 시계 바늘을 돌릴 수있는 응용 프로그램을 개발하고 있습니다. 그것을 위해 나는 바늘의 이미지 뷰의 속성을 변환을 사용하고 있습니다 :CGAffineTransformRotate 크기 문제
CGAffineTransform newTrans = CGAffineTransformRotate(initialTransform, -angleDif); minutesNeedle.transform = newTrans;
를 사용자의 터치 내가 바늘의 공간 (분 또는 시간의 프레임)을 감지해야한다을 검출하기위한 목적. 그리고 여기 내 문제는, 이미지를 회전시킨 후에 이미지가 늘어나고 다른 이미지와 간섭하는 것처럼 보입니다. UIView 클래스 설명서에서는 변형 된 후에 뷰의 프레임이 변경되며 중심 및 경계 속성을 사용해야한다고 말합니다. 그러나, 나는 superview에있는 접촉 사용자를 감지하기 위해 경계 속성을 사용할 수 없습니다.
프레임 크기를 변경하지 않고이 애니메이션을 수행하는 다른 방법이 있습니다 (의심 스럽습니다). 또는 touchesEnded 메서드에서 프레임 크기를 조정할 수 있습니다 (시도했지만 헛된). 제가 일주일 동안저기서 막을 수 있도록 도와주세요 !! 감사합니다
나는 당신이 말하는 것을 이해하고 있는지 확신하지 못합니다. 그러나 이미 내 바늘을 잡을 뷰를 만들려고했는데 그 다음에 뷰 (바늘의 이미지가 아닌)를 변형 시키면 이미지의 크기가 올바르게 유지되지만 이미지 좌표는 뷰를 유지하는 뷰에 상대적입니다. 그래서 x와 y는 사용자의 축에 대해 틀립니다. 답장을 보내 주셔서 감사합니다 – Jazzmanouch
바늘이 들어있는보기 외에도 빈/선명한보기를 만드는 것을 의미합니다. 시계 위에 오버레이하여 해당 뷰의 터치 이벤트를 사용하여 바늘 뷰의 애니메이션을 제어합니다. – Matt
touchesMoved 메서드 나는 touche의 사용자가 바늘의 프레임에 있는지 테스트하고 있습니다 (if (CGRectContainsPoint (needle.frame, touch)).이 경우 빈 뷰에서 원래 크기의 바늘 프레임을 어떻게 감지합니까? – Jazzmanouch