2013-08-23 2 views
0

У меня есть изображение, показанное в виде изображения. Если я касаюсь некоторых, где на экране, есть ли какой-либо метод, чтобы узнать, какая точка затронута на изображении. Я хочу взять координаты относительно изображения, а не координаты экрана. Я хочу сделать это без использования сторонней библиотеки. Пожалуйста, предложите, если есть какие-либо методы.Преобразование точки экрана в точку изображения

ответ

0

Чтобы преобразовать точку с одного вида на другой вид, вы можете использовать методы convertPoint:fromView: и convertPoint:toView:.

+0

К сожалению, я не нужна точка в ImageView. Мне нужны координаты в файле изображения. – Shruthi

0

Как только вы получите относительные координаты из события касания UIImageView (и я предполагаю, что вы используете UIImageView и устанавливаете его свойство Image для изображения). Затем вы можете использовать 1/UIImageView.image.scale для умножения с относительными касательными координатами и получения абсолютных координат для этого изображения.

Как правило, ваше исходное изображение искажается или масштабируется в зависимости от размера UIImageView, поэтому вам нужно сделать обратный эффект.

+0

У меня есть прокрутка, связанная с изображением. Когда я масштабирую/прокручиваю вышеприведенную логику, не будет работать na ... – Shruthi

+0

@Shruthi - Вам нужно будет поделиться своим кодом, тогда я могу вам помочь ... – Jailbroken

+0

У меня есть прокрутка, над которой я разместил изображение. Я рисую линии над этим изображением. Мне нужно отправить координаты линии относительно исходного изображения (а не координат изображения) на сервер. Я использовал прокрутку, чтобы увеличить изображение. – Shruthi

1

попробуйте вот так, Важное примечание userInteractionEnable=YES для вашего изображения. По умолчанию для взаимодействия с пользователем установлено значение НЕТ для просмотра изображения.

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

} 
+0

XCode6.1 предположил, что это был userInteractionEnabled не userInteractionEnable – stephendwolff

Смежные вопросы