2012-02-01 14 views
1

PinchGestureRecognizerを追加したUIImageViewがあります。現在のところ、画像はピンチできれいにリサイズされますが、アスペクト比を維持しないで画像のサイズを変更できるようにしたいと考えています。したがって、ユーザーが水平にピンチした場合、画像ビューの幅は拡大されます。もしそれらが垂直につまむならば、高さは大きくなるでしょう。縦横比を維持しないでUIImage/UIImageViewのサイズを変更する

どうすればいいですか?

答えて

1

画面上に2本の指が必要なカスタムジェスチャ認識装置を作成します。
両方の指が画面上にあると、一部のUIEdgeInsetsでimageViewの境界にオフセットが保存されます。

touchesMovedでは、両方の指が画面に表示されているかどうかを確認します。表示されている場合は、現在のタッチ位置にedgeInsetsを適用して新しいフレームを計算します。

ヘッダー:click
実装:click

うまく機能し、私が見てきた他の実装よりも自然な感じ。

+0

ありがとうございます。私はそれを感謝します! –

+0

私は昨夜あなたに電子メールを送った。明らかに、これはシミュレータ上では動作しますが、何らかの理由でデバイス上で動作しません。何か手掛かりがあるのはなぜですか? –

0

UIPinchGestureRecognizerは、水平方向または垂直方向に挟まれるという概念を持たない1つのスケールのみをサポートしているため、タッチ操作を自分で行う必要があります。

UIGestureRecognizerhere for docs参照)の独自のサブクラスを作成して、タッチポイントの水平と垂直の区切りを見て、2つの異なるスケールを決定することができます。私が思っていたように、作成するのはかなり簡単です。最初のタッチポイントを見るだけで、タッチの現在の分離の差を、垂直方向と水平方向の両方でタッチの初期分離に計算します。

関連する問題