2017-08-01 6 views
0

イメージを表示するUIScrollViewがあります。私は、現在表示されている領域の中心付近(正確である必要はありません)のどこかにrectをプログラムでズームしたいと思います。この矩形の座標をzoomToRectでどのように使うのですか?この画像はすでに拡大表示されており、scrollViewコンテンツ領域の一部しか表示していないことに注意してください。UIScrollview zoomToRect現在表示されているビューの中心

enter image description here

答えて

0

その画像のX及びY位置scrollviewのcontentSizeに対するものです。画面に表示される領域は、スクロールビューのcontentOffsetによって定義されます。

次に、画面上のスクロールビューの位置と選択矩形の位置を画面に表示します。

最後に、上記の値を使用して、XとYの両方について、かなり単純な数式(いくつかの加算/減算)を行う必要があります。

0

グラブUIImageViewframeinsetBy(dx:dy:)を呼び出す:

は同じ中心点と、ソース 矩形よりも小さい又は大きい矩形を返します。 Apple Documentation

から

  • はここ遊び場で迅速な可視化です:

    let blueSquare = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300)) 
    let yellowSquare = UIView(frame: blueSquare.frame.insetBy(dx: 100, dy: 100)) 
    blueSquare.backgroundColor = .blue 
    yellowSquare.backgroundColor = .yellow 
    blueSquare.addSubview(yellowSquare) 
    

    は、このになります:

    enter image description here

+0

をあなたはホを知っていますか現在表示されている領域のフレームを取得しますか?私はUIImageのフレームを取得したいとは思っていません。すでにズームインされている可能性があるからです。 – bakalolo

+0

Gotcha。 scrollViewはそれを少し複雑にします。おそらく、scrollViewの範囲をつかむだろうか?本当にあなたのユースケースに依存します。画像の目に見える部分を拡大したいのですか?[意味 - 事柄の解答](https://stackoverflow.com/a/45447238/3947107)を見てください。 – Kymer

関連する問題