Я нашел пример кода, из которого вы извлекали код. Это был проект TapToZoom в ScrollViewSuite, доступный по http://developer.apple.com/iphone.
Я изменил строку, которая вычисляет newScale, чтобы она была отношением между размером кадра Scroll View и размером Image View. Это дает эффект увеличения масштаба изображения до тех пор, пока изображение не будет показано с разрешением 1: 1.
Примечание: я также должен был убедиться, что UIImageView с именем imageView является переменной класса. В исходном примере кода он был объявлен локально в viewDidLoad: метод.
Предостережение заключается в том, что представление прокрутки и изображение имеют одинаковое отношение x / y. Я только что сделал математику по ширине.
- (void)tapDetectingImageView:(TapDetectingImageView *)view gotDoubleTapAtPoint:(CGPoint)tapPoint {
// double tap zooms in on them image to a 1:1 resolution (based on width)
float newScale = imageView.image.size.width / imageScrollView.frame.size.width;
CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint];
[imageScrollView zoomToRect:zoomRect animated:YES];
}