私はUIScrollViewのズーム機構が窮屈で本質的に使用不可能であることを発見しました。だから代わりに、私は自分自身を圧倒しています。ピンチズームでサイズを変更するUIViewがあり、うまくいきます。ズームが完了すると、ビューは変換をリセットしてイメージを再描画する必要があります。iPhoneが画面を再描画するまで変換の変更を表示しないようにするにはどうすればいいですか?
ズームは、基本的にUIScrollViewと同じように機能します。完了するまでUIViewのtransform
プロパティを設定します。その後、ズームが終了したら、transform
をCGAffineTransformIdentity
にリセットし、以前のサイズになるようにフレームのサイズを変更し、新しいサイズで再描画するようにビューに指示します。
トランスフォームをIDに変更してからイメージを再描画する場合を除いて、すべて正常に動作しますが、イメージが完全に再描画される前にわずかなちらつきがあります。これは、ビューが任意のサイズになる可能性があるため、CATiledLayerのサブクラスを使用しているためです。
fadeDuration
を0に上書きしましたが、再描画が完了する前にトランスフォームがリセットされている間は、まだちらつきがあります。それを置き換えて描画する別のビューを作成せずにこれを克服する簡単な方法はありますか?
エド、まだ問題はありますか?あなたがCATiledLayerと組み合わせないと、UIScrollViewはほとんど使えないことがわかりました。言い換えれば、CATiledLayerを使用している場合は、UIScrollViewを使用してください。 – hatfinch
最近この問題を覚えていないので、私はもうこの問題を抱えていないと信じています。私のケースでは、通常のUIViewをはるかに単純なものにするという、UIScrollViewの使用に関する他の問題があります。 –