получить координаты касания (в виде 0-480 и 0-320)

я не понимаю, как перевести координаты iphone.

если я сделаю одно касание, я получу координату.

если я делаю касание, удерживаю его и отпускаю, оно показывает разницу начальной и конечной точки.

как получить абсолютное положение касания?

Спасибо!

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touch.view];
    NSLog(@"X: %f",location.x);
    NSLog(@"Y: %f",location.y);
}

Я хочу изменить размер изображения касанием и перетаскиванием (только высота)


person jacky    schedule 15.11.2009    source источник
comment
Вы должны добавить свой код, получающий координаты (подкласс UIView?)   -  person Francescu    schedule 15.11.2009


Ответы (1)


Положение касания вычисляется относительно вида.

Если вы хотите, чтобы положение относительно экрана выполнялось:

UITouch * touch = [touches anyObject];
CGPoint pos = [touch locationInView: [UIApplication sharedApplication].keyWindow];
NSLog(@"Position of touch: %.3f, %.3f", pos.x, pos.y);

(сухой код, может давать ошибки)

person nash    schedule 15.11.2009
comment
Спасибо! Как можно изменить размер UIImageVIEW, перетащив одну сторону? - person jacky; 16.11.2009
comment
Я никогда не использовал классы UIImage. Взгляните на справку по классу UIImage: разработчик .apple.com/iphone/library/documentation/UIKit/ . Точнее на drawInRect: - person nash; 16.11.2009
comment
Разве [touch locationInView:nil] не дает тот же результат? В документах говорится: «Передайте nil, чтобы получить местоположение касания в координатах окна». - person Pavel Alexeev; 06.08.2013
comment
Комментарий Павла - лучший ответ. Вы правы, согласно документации Apple UITouch: developer.apple.com/library/IOS/documentation/UIKit/Reference/: - person MOK9; 10.11.2014