2011-05-10 79 views
7

我正在使用picker控制器和cameraOverlayView在相機視圖中顯示產品的圖像。在應用疊加層之前,產品圖像被調整大小。 它在iOS 4.2上正常工作,但在iOS 4.3上,產品圖像全尺寸顯示。iOS 4.3上的cameraOverlayView問題

pickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
UIImageView *imgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:produitAffiche.img_realite]] autorelease]; 

// Resize 
if(imgView.frame.size.height == 480) 
{ 
    //Portrait 
    imgView.frame = CGRectMake(80.0f, 120.0f, 160.0f, 240.0f); 
} 
else 
{ 
    // Landscape 
    imgView.frame = CGRectMake(40.0f, 160.0f, 240.0f, 160.0f); 
} 

imgView.contentMode = UIViewContentModeCenter; 
imgView.clipsToBounds = NO; 
imgView.contentMode = UIViewContentModeScaleAspectFit; 

pickerController.cameraOverlayView = (UIView *) imgView; 

我改變了我用作疊加的UIImageView的框架,但它仍然顯示在320 * 480。 我知道cameraOverlayView已在iOS 4.3中修改過,但我不知道發生了什麼變化以及如何更正我的應用程序。

感謝您的幫助。

+1

我有同樣的問題。找到答案[這裏](http://stackoverflow.com/questions/5336318/ios-4-3-changed-transformation-on-uiimagepickercontrollers-camera-overlay-view) – 5hrp 2011-05-20 13:10:31

+0

鏈接的答案並沒有真正的幫助;它只是說讓你的視野變大。我們還能如何處理比整個窗口小的視圖? – wxs 2011-05-30 18:14:49

回答

3

在的iOS 4.3重疊視圖被拉伸到全屏幕。由於您將內容模式設置爲縱橫比,因此圖像會拉伸以適合320x480的新視圖尺寸。

您需要製作一個全屏的透明UIView,將imageview添加到該視圖並使UIView成爲新的疊加視圖。

UIView *fullscreenView = [[UIView alloc] initWithFrame:CGRectZero]; 
fullscreenView.backgroundColor = [UIColor clearColor]; 
.... 
[fullscreenView addSubview:imgView]; 
pickerController.cameraOverlayView = fullscreenView; 
0

找到this article似乎符合法案。長期和短期的它是在你的代碼

imgView.clipsToBounds = NO;

它應該使用

- (UIImage *) 
    resizedImageWithContentMode:(UIViewContentMode)contentMode 
         bounds:(CGSize)bounds 
     interpolationQuality:(CGInterpolationQuality)quality; 
0

評論了這條線。 如果你真的想剪輯,@slf的答案應該有所幫助。

0

嘗試設置的UIImagePicker這些屬性:

mImagePickerController.showsCameraControls = NO; 

mImagePickerController.navigationBarHidden = YES; 

mImagePickerController.toolbarHidden = YES; 

mImagePickerController.wantsFullScreenLayout = YES; 
0

我的問題是,實際上iOS5上顯示的UIImagePicker全屏不能在iOS4.3上運行在iPad上。我正在屏幕外啓動圖像採集器,然後將其動畫化爲視圖...您可以看到快門圖像打開,但攝像機視圖本身只是透明的,沒有攝像機輸出。

我的解決方案是在iPad上爲iOS4.3製作動畫。看起來,將相機視圖從屏幕開始離開相機渲染部分(如我在iOS5中注意到的那樣)。

這個回答對於原始問題並不完全正確,但我把它放在這裏是爲了解決同一個問題並且像我一樣碰到這個問題的人。