У меня есть простое приложение, которое показывает пользователю изображение (в UIImageView), посредством чего они касаются части экрана, а затем на следующем экране отображается то же изображение (в UIImageView), но теперь имеет «подпись» наложено на это. Проблема, с которой я столкнулся, заключается в том, что кажется, что координаты x, y, возвращаемые от прикосновений, не отображаются должным образом в UIImageView на втором экране.
Например, когда я касаюсь нижней части экрана, я получаю: X: 157.000000 Y: 358.000000
а низ экрана должен быть 480? так как мои размеры экрана: ВЫСОТА И ШИРИНА ЭКРАНА В X: 320.000000 Y: 480.000000. Это приводит к тому, что подпись будет размещена в РАЗНОМ месте, чем предполагалось пользователем.
Я использую следующий код для получения моих сенсорных координат:
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"TOUCH HAPPENED");
UITouch *touch = [touches anyObject];
CGPoint touchCoordinates = [touch locationInView:self.view];
NSLog(@"X: %f Y: %f",touchCoordinates.x, touchCoordinates.y);
}
Я использую следующий код для размещения «подписи» со значениями, полученными от прикосновения:
CGRect screenRect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(screenRect.size);
[pageImage drawInRect:CGRectMake(0, 0, screenRect.size.width, screenRect.size.height)]; // this is the original image
NSLog(@"SCREEN HEIGHT AND WIDTH AT X: %f Y: %f",screenRect.size.width, screenRect.size.height);
NSLog(@"PLACING IT AT TOUCH COORDINATES X: %f Y: %f",sigLocation.x, sigLocation.y);
UIImage *shieldLogo = [UIImage imageNamed:@"shield_bw.gif"];
[shieldLogo drawInRect:CGRectMake(sigLocation.x, sigLocation.y, shieldLogo.size.width/2, shieldLogo.size.height/2)];
[theSignature drawAtPoint:CGPointMake(sigLocation.x+24.000000, sigLocation.y) withFont:[UIFont fontWithName:@"Arial" size:8.0]];
[theSignature2 drawAtPoint:CGPointMake(sigLocation.x+24.000000, sigLocation.y+ 8.000000) withFont:[UIFont fontWithName:@"Arial" size:8.0]];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[image setImage:resultingImage];