2013-07-03 35 views

回答

1

你有兩個選擇:

(1)使用UIScrollView。您需要執行UIScrollViewDelegate。在scrollViewDidZoom:(UIScrollView *)scrollView中,您可以比較當前的zoomScale值和前一個zoomScale值。如果增加,則用戶正在放大。否則,用戶正在縮小。然後你可以根據這個做一些事情。

(2)使用UIPinchGestureRecognizer。在這種情況下的邏輯將大致相同(只需添加一個類似的檢查來查看縮放比例是上升還是下降)。

1

這是一個基本代碼。這可能需要一些重構以實現您需要

// Disable existing recognizer 

for (UIGestureRecognizer* recognizer in [_scrollView gestureRecognizers]) { 


    if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) { 
     [recognizer setEnabled:NO]; 
    } 
} 

// Add our own 

UIPinchGestureRecognizer* pinchRecognizer = 
    [[UIPinchGestureRecognizer alloc] initWithTarget:self 
              action:@selector(pinch:)]; 
[_scrollView addGestureRecognizer:pinchRecognizer]; 
[pinchRecognizer release]; 

- (void) pinch:(UIPinchGestureRecognizer*)recognizer { 

    if (lastScale < [recognizer scale]) { 

    // pinch - out // write your own code here 
    } 
    else (lastScale > [recognizer scale]) { 

    // pinch - in // write your own code here 
    } 
} 

} 

希望這將幫助你處理掐事件按照您的要求具體的功能。

+0

@BlackRider給出的解決方案也是正確和可取的。 – Mrunal