2014-02-17 41 views
0

當用戶放大我的UIScrollView時,我想隱藏無關信息。現在,我正在處理,在被調用每個變焦變化scrollViewDidZoom委託方法:如何在用戶放大UIScrollView時隱藏某些內容,然後在縮小時顯示它?

- (void)scrollViewDidZoom:(UIScrollView *)scrollView { 
    if (scrollView.zoomScale > scrollView.minimumZoomScale) { 
     [self hideExtraInformation:YES]; 
    } 
    else { 
     [self hideExtraInformation:NO]; 
    } 

我的問題是,在這hideExtraInformation:方法,遮蓋力是動畫阿爾法出來。由於每次縮放都會調用這個動畫,所以動畫正在觸發一噸。我該如何製作,以便只在初始放大時調用動畫,然後在完全縮小時才動畫?

回答

1

你可以一個currentZoomScale屬性添加到您的類,並用它來確定工作需要

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{ 
    BOOL isZooming   = scrollView.zoomScale > scrollView.minimumZoomScale; 
    BOOL isCurrentlyZoomed = self.currentZoomScale > scrollView.minimumZoomScale; 

    if (isCurrentlyZoomed) { 
    if (!isZooming) { 
     [self hideExtraInformation:NO]; 
    } 
    } else { 
    if (isZooming) { 
     [self hideExtraInformation:YES]; 
    } 
    } 

    self.currentZoomScale = scrollView.zoomScale; 
} 
+0

會更容易地存儲可見性狀態。 ;-) –

相關問題