質問: {2448, 2448} のようになっていて拡大時にはscrollViewのcontentOffsetとcontentSizeの変化に合わせてそのboundsとその下階層にあるImageViewのframeが変わっています。 その後imageのサイズに1/scaleを乗算したものが 取得したい拡大時のrect.sizeであることがわかりましたが imageの内、見えている部分の座標が未だに正確に取得できないです picture説明 黄色 imageView.imageのサイズ、 青 scrollViewのframe(見えている部分) 緑 CGRectMake(scrollView.contentOffset.x/ scale,scrollView.contentOffset.y/ scale,scrollView.frame.size.width/ scale,scrollView.frame.size.height/ scale)で取れているように見える矩形 今知りたいのは黄色のimageの中での青の矩形の座標です。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/7d35f2d7f05cceca684d15ba2db7c6ed.png)
回答: scrollView.contentOffsetには拡大後のオフセット値が入っているので、ここからscrollView.size(328x328)を切り取ればいいです。切り取るのは拡大前のimageView(のimage)なので値を変換します。変換と言ってもscaleで割るだけです。 ``` let cropRect = CGRect(x: scrollView.contentOffset.x / scale, y: scrollView.contentOffset.y / scale, width: scrollView.frame.width / scale, height: scrollView.frame.height / scale) ``` どうでしょうか? scrollViewDidEndZoomingのタイミングだとオフセットがマイナス値になることもあるので、その辺を対策をする必要があるかも知れません。