tags:

views:

17

answers:

1

I have a UIImageView inside of a UIScrollView. The parent scroll view allows zooming and panning. When the user taps a point in the scroll view, I want to find the location in the raw image inside the UIImageView - i.e. I want the point after including any zooming and panning the user has done in the scroll view.

Right now, I have a UIScrollView subclass called ForwardingScrollView that handles touch events and attempts to convert them into locations in the coordinate system of the child image view. I tried adding contentOffset to these points, tried multiplying them by zoomScale, and even tried doing both. I also tried calling [touch locationInView: self] and [touch locationInView: parent], but none of these methods correctly return the point that I clicked in the underlying image.

What's the best way to do this?

Thanks in advance.

A: 

UIView has methods for converting points and rectangles between views.

[scrollView convertPoint:somePoint toView:imageContentView];

or

[imageContentView convertPoint:somePoint fromView:scrollView];
drawnonward