2011-11-18 110 views
0

我正在製作一個簡單的照片查看器,允許縮放和平移。UIImageView在UIScrollView:平移失敗

所以在IB我創建一個包含一個UIImageView一個UIScrollView:

enter image description here

然後我就可以對其進行配置以儘快容納的照片作爲圖片可:

- (void) imageCaptureCompleted 
{ 
    { 
     UIImage* I = self.frontCamView.stillImage; 

     self.imageView.bounds = CGRectMake(0, 0, I.size.width, I.size.height); 
     self.imageView.image = I; 

     // - - - 

     self.scrollView.maximumZoomScale = 4.0; 
     self.scrollView.minimumZoomScale = 0.75; 
     self.scrollView.clipsToBounds = YES; 
     self.scrollView.delegate = self; 

     self.scrollView.contentSize = self.imageView.bounds.size; 
    } 

    [self hideCaptureView]; 

    UIImageWriteToSavedPhotosAlbum(self.frontCamView.stillImage, 
            self, 
            @selector(image: didFinishSavingWithError: contextInfo:), 
            nil); 
} 

- (UIView *) viewForZoomingInScrollView: (UIScrollView *) scrollView 
{ 
    return self.imageView; 
} 

這是幾乎工作。它確實讓我平移和縮放。

然而,它太過分了!它在碰到照片的右邊時應該反彈回來。但相反,它的行爲就好像照片是在一個更大的黑色矩形中。

我已經按照上面的圖片完全相同的方式設置了滾動視圖的自動調整屏蔽。

如何讓它工作?

PS我現在已經明白了這一點;我會爲後人提出答案。

回答

0

此代碼排序出來:

 // self.imageView.bounds = CGRectMake(0, 0, I.size.width, I.size.height); 
     self.imageView.image = I; 

     [self.imageView sizeToFit]; 

不過,我不明白爲什麼這個改變是必要的。如果有人能告訴我,我會接受這個答案(在這種情況下,請粘貼上面的代碼,然後我可以刪除這個答案)。