【Obj-C】ピンチ(二本指で操作、縮小、拡大)イベントの設定(イベント) UIPinchGestureRecognizer

ピンチ(二本指で操作、縮小、拡大)イベントの設定(イベント) UIPinchGestureRecognizer

objective-c サンプル

iPhone の開発で、二本指の操作でビューの拡大、縮小、画像の拡大、縮小を処理するイベントを実装する方法です。

UIPinchGestureRecognizer1    UIPinchGestureRecognizer2

ピンチ前 −−−−−−−−−−−−−−−−−−−−> ピンチ後

UIPinchGestureRecognizer をインスタンス化します。また、イベント発生時に呼び出すメソッドを selector で指定します。
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePinchGesture:)];

Viewへ関連付けします。
[self.view addGestureRecognizer:pinchGesture];

以下が、ピンチされた時に呼び出されるメソッドになります。上記の selector にて設定をしています。
拡大、縮小の動作を2本指で操作している間ずっとイベントが発生します。

– (void)handlePinchGesture:(UIPinchGestureRecognizer *)sender {

ピンチによって拡大、縮小したスケールを取得します。
CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];

上記で取得したスケール率をビューにセットしてビューを縮小拡大させます。
self.view.transform = CGAffineTransformMakeScale(factor, factor);

コード サンプル

// Pinching in and out (for zooming a view)
 // UIPinchGestureRecognizer
 // ピンチ
 UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]
 initWithTarget:self action:@selector(handlePinchGesture:)];
 [self.view addGestureRecognizer:pinchGesture];
// セレクター
- (void)handlePinchGesture:(UIPinchGestureRecognizer *)sender {
 CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
 self.view.transform = CGAffineTransformMakeScale(factor, factor);
 
 NSLog(@"factor %f",factor);
 
}
タイトルとURLをコピーしました