スーパービューの周りにドラッグできるように、タッチに反応する小さな UIImageView を作成するプログラムがあります。
画像を拡大縮小するために UIPinchGestureRecognizer を追加しました。現在のコードでは、画像は完全に拡大縮小されますが、新しいピンチ ジェスチャが開始されると、スケール 1.0 で再開されます。
最初の ImageView スケールを取得するために contentScaleFactor を使用しようとしましたが、常に 1.0 であるため、明らかに以下のコードは適切に機能しません。
- (void)doPinch:(UIPinchGestureRecognizer *)pinch {
if (pinch.state == UIGestureRecognizerStateBegan) {
initialScale = dragImage.contentScaleFactor;
} else {
CGFloat newScale = initialScale * pinch.scale;
CGAffineTransform transform = CGAffineTransformMakeScale(newScale,newScale);
dragImage.transform = transform;
}
}
このコードは、Apress Beginning iPhone 4 Development book の「Pinch me」の例を基にしています。
contentScaleFactor が機能しないため、コア グラフィック プロパティを使用する必要がありますか? CGAffineTransformScale はそれと何か関係がありますか?
ありがとう!