보기의 drawRect 기능에 그려지는 대화식 그림이 포함 된 사용자 정의 UIView가 있습니다. iPad에서는 드로잉 크기가 1024 x 768입니다. iPhone의 경우 CGContextScaleCTM을 사용하여 iPhone 용 드로잉을 축소합니다. 드로잉에서 적절한 종횡비를 유지하려면 뷰를 480 x 360으로 축소하고 뷰의 y 값을 -20으로 설정합니다 (뷰의 위쪽과 아래쪽에서 20 픽셀 잘립니다). 모든 것이 정확 해 보이지만, 내보기의 대화 형 부분이 작동하려면 iPhone에서 iPad 좌표로 터치 좌표를 변환해야합니다. 내가있는 UIView (320) 고하고 y 값을 변환좌표를 iPhone 화면 크기에서 iPad 화면 크기로 변환
point.y *=768/320
를 사용하는 경우 위치 (하지만 내 그림이 왜곡) 나는 열심히이 일을해야 알고 있지만 나는 그렇게에서 포인트를 코딩 몇 가지 테스트를 완료했습니다 올바른지 작물을 가지고 수학을하기가 힘들어. 여기 내가 지금까지 가지고있는 것입니다 :
CGPoint point = [[touches anyObject] locationInView:self.view];
[self endTouch:&point];
NSLog(@"true point: %@",NSStringFromCGPoint(point));
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
point.x *= 1024/480;
point.y *= 768/360;
NSLog(@"corrected point: %@",NSStringFromCGPoint(point));
}
누구든지이 변환을 도와 줄 수 있습니까? 감사!
고마워! 내가 전에 얻었던 기괴함을 설명해 준다. 팁 #define 매크로도 가져 주셔서 감사드립니다. 저것은 C 것입니까? 객관적인 것입니까? 나는 이것들이 인터넷 주위에서 약간의 코드로 사용되는 것을 보았지만 배우기 시작한 객관적 - c 책들 중 어떤 것에도 나오지 않았다. – Frank
@jonmorgan 그 반대는 무엇입니까? iPad 좌표를 iPhone 좌표로 변환해야합니다. 어떤 팁? – Corey