El problema con solución @Vladimir es que muestra visibleRect mal si viewForZoom es menor que los límites ScrollView. Así que se me ocurrió esta solución.
- (CGRect) zoomedFrame{
CGRect zoomedFrame;
zoomedFrame.origin = self.contentOffset;
zoomedFrame.origin.x -= zoomingView.frame.origin.x;
zoomedFrame.origin.y -= zoomingView.frame.origin.y;
zoomedFrame.size = self.contentSize;
return zoomedFrame;
}
zoomingView
es una vista que devuelve viewForZoomingInScrollView:
método.
bounds
son límites de scrollView.
Así que hay dos casos:
Cuando el zoomingView
es menor que bounds
, contentOffset
no reflejan la esquina superior izquierda de vista del contenido, pero un extraño cambio de ver el contenido relativo al centro de bounds
. Y zoomingView.frame.origin
tiene valores normales como si zoomingView
estuvieran en el centro de bounds
. (esto ocurre si se intenta reducir el tamaño del zoomingView más de minimulScale
)
Cuando el zoomingView
es bigget que bounds
, zoomingView.frame.origin
tiene valores extraños como este:
{-6.15367e-06, 3.98168 e-06}
Y contentOffset
muestra lo que should.
Así que todo lo que se compensan entre sí como he mostrado en mi código.
gracias, funcionó como se esperaba :) – Manny
Agradecería que dejaras algún comentario sobre mi respuesta. – DanSkeel