У меня есть пользовательский UIView, который содержит интерактивный чертеж, который рисуется в функции drawRect вида.На iPad размер рисунка составляет 1024 x 768. Для iPhone я уменьшаю рисунок для iPhone, используя CGContextScaleCTM.Чтобы сохранить правильное соотношение сторон на моих чертежах, я уменьшаю вид до 480 x 360 и устанавливаю значение y для вида -20 (эффективно обрезая 20 пикселей от верха и низа вида, что нормально).Теперь все выглядит правильно, но мне нужно преобразовать сенсорные координаты из iPhone в iPad, чтобы интерактивные части моего обзора работали.Если я сделаю uiview 320 высоким и использую
point.y *=768/320
для преобразования значения y, то местоположения верны (но мой рисунок искажен), я провел несколько тестов для жесткого кодирования, поэтому я знаю, что это должно работатьно мне трудно заставить математику работать с урожаем.Вот что у меня есть:
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));
}
Кто-нибудь может мне помочь с этим преобразованием?Спасибо!