2009-10-01 31 views
0

現在,當我槍王我運行這段代碼的UIScrollView(來自蘋果自己的示例代碼獲取):如何使UIScrollView縮放爲UIImage的大小?

#define ZOOM_STEP 1.5 
float newScale = [imageScrollView zoomScale] * ZOOM_STEP; 
CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint]; 
[imageScrollView zoomToRect:zoomRect animated:YES]; 

不過,我最大的變焦設置爲3,但我想弄清楚如何使雙擊縮放到1px = 1px,我的意思是,UIScrollView放大到它內部的UIImage的實際大小。但我不確定如何計算圖像的大小以便將其用於縮放縮放?

回答

1

我跟蹤了您從中拉取的示例代碼。這是ScrollViewSuite中的TapToZoom項目,可在http://developer.apple.com/iphone處獲得。

我將計算newScale的行更改爲滾動視圖框架大小與圖像視圖圖像大小之間的比率。這會影響您想要放大的效果,直到圖像以1:1的分辨率顯示。

注意:我也確保名爲imageView的UIImageView是一個類變量。在原始示例代碼中,它在viewDidLoad:方法中進行了本地聲明。

這裏的警告是,滾動視圖和圖像具有相同的x/y比率。我ony做了數學的寬度。

- (void)tapDetectingImageView:(TapDetectingImageView *)view gotDoubleTapAtPoint:(CGPoint)tapPoint { 
    // double tap zooms in on them image to a 1:1 resolution (based on width) 
    float newScale = imageView.image.size.width/imageScrollView.frame.size.width; 
    CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint]; 
    [imageScrollView zoomToRect:zoomRect animated:YES]; 
} 
+0

謝謝布拉德!完全做到了。就像你指出的那樣,高度/高度將與寬度/寬度相同。 – runmad 2009-10-02 21:10:51

相關問題