私は多少の文書を読んできましたが、私は非常に混乱していると言わざるを得ない。ここに私が現在セットアップしているものがあります。Scroll Views、Zooming and Zoom原点の混乱
iPadプロジェクトでは、子UIView(insetView
)を含むUIScrollView(scrollView
)があります。私のinsetView
はscrollViewDidEndZooming
メソッドから返され、子ビューをズームするために厳密に使用されます。
insetView
は、scrollView
よりも小さく、中央に始まります。ユーザーがZoomにピンチすると、insetView
は元のサイズの2倍に拡大するか、元のサイズの半分に縮小することができます。
これはすべてうまく動作しますが、緩和したいのはちょっとした悩みがあります。ズームするためにピンチした場合、insetView
が縮小しますが、ズームの原点は左上隅のinsetView
です。つまり、insetView
は、左上の点がscrollView
のウィンドウに固定された状態で拡大して縮小します。
insetView
は、中心にズームアウトされ、scrollView
の中心に固定され、scrollView
より大きいサイズになるまで固定されます。その時点で、私はzoom originがピンチの真ん中か、少なくとも現在表示されている現在の部分の中心のinsetView
であることを望みますか?
これはどのように達成できますか?あなたのscrollViewDidZoom:
デリゲートメソッドではこのような何かをしたい
、' CGSize boundsSize = self.bounds.sizeいけません; 'line read' CGSize boundsSize = scrollView.bounds.size; '? – RLH
申し訳ありません、そうです。私のプロジェクトのコードをコピーして編集しましたが、そのビットを正しく編集できませんでした。よく目撃された。それはあなたのために働くのですか? – mattjgalloway
はい!ありがとうございました!私は実際には、else文を除いて、ある時点でこれを自分のコードに入れました。それは私のコードが行っていたことの欠けていた部分でした。そのコードなしで起こったバグは、上記のふるまいよりも厄介でした。私はこれを答えとしてマークしていますが、もう一つ質問があります。私の 'insetView'は' scrollView'のまま左下に固定されたままです。ピンチを解除すると、ディスプレイは再センタリングされます。ズーミングが影響を与えている間にこれを行う方法はありますか、それともそれだけで生活する必要がありますか?これはうまくいきますが、私は気まぐれで、アプリを磨くのが好きです! :) – RLH