2013-05-06 36 views
0

我有一個UIView持有一個UIImage。 我想在這個UIView的適用UIPinchGesture。 我想改變它的大小UIView如何在UIView上應用UIPinchGesture?

我加入

UIPinchGestureRecognizer *pinchRecognizer = 
    [[UIPinchGestureRecognizer alloc] initWithTarget:self 
              action:@selector(handlePinch:)]; 
[pinchRecognizer setDelegate:self]; 
[frameView addGestureRecognizer:pinchRecognizer]; 

-(void)handlePinch:(UIPinchGestureRecognizer*)sender{ 
} 

但是,我申請它第一次,所以任何人都幫我出這一點。

幫助是非常感謝!

回答

1

UIPinchGestureRecogniser有一個propertyscale這是兩個觸摸的CGPoints之間的scale因子。你可以使用這個屬性。

在handlePinch添加以下代碼:選擇方法

-(void)handlePinch:(UIPinchGestureRecognizer*)sender { 
    sender.view.transform = CGAffineTransformScale(sender.view.transform, 
                sender.scale, 
                sender.scale); 
    sender.scale = 1.0; 
} 

如文檔中給出,

比例值的絕對值隨着時間的推移而變化。這不是來自報告最後一次報告的δ值。當手勢第一次被識別時,將比例值應用到視圖的狀態 - 每次調用處理程序時不要連接值。

因此,我們需要的刻度值重置爲1.0。

1
-(void) handlePinch:(UIPinchGestureRecognizer *)gestureRecognizer{ 

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) { 
     [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]); 
     [gestureRecognizer setScale:1]; 
    } 



} 

欲瞭解更多詳情,請參閱this link

相關問題