2013-08-19 87 views
1

hello大家我正面臨一個問題。 在我的應用程序中,我想剪裁從相機拍攝的圖像區域。 因此,我使用的是UIImagePickerController &它是cameraOverlayView。ios UIImagePickerController攝像頭覆蓋視圖的狀態欄屬性

問題是,在iPhone 4S,iPad,iPod - 「狀態欄」不透明。 在第二臺iPad上,相機中的「狀態欄」是透明的。 我不知道如何訪問UIImagePickerController的狀態欄?

在我的代碼中,我做了一些高度計算,在透明度的情況下,我錯誤地減去了額外的大小。我無法弄清楚「拍攝區域」內部的圖像大小。

下面是一些代碼:

+(CGFloat) statusBarYSize 
{ 
    CGSize statusBarSize = [[UIApplication sharedApplication] statusBarFrame].size; 
    return MIN(statusBarSize.width, statusBarSize.height); 
} 

+(CGRect)maxRectForPicker:(UIImagePickerController*)picker 
{ 
    CGRect maxFrame = picker.cameraOverlayView.frame; 
#warning @"Check that coefficient is equal to such value everywhere...)" 
    if (!picker.toolbar.translucent) 
     maxFrame.size.height -=([self statusBarYSize]*2.5); // If transparent should not be subtracted! 
    return maxFrame; 
} 

這裏是圖片鏈接:

iPhone的形象。相機的尺寸爲全屏 - 狀態欄。

https://www.dropbox.com/s/7b405h5cavrf819/CorrectSubstraction.jpg

iPad的形象。相機佔據整個屏幕。

https://www.dropbox.com/s/7rekl8xen1z3s9b/ShouldNotSubstract.jpg

許多在此先感謝。 Siarhei

回答

0

我以下面的方式來解決問題:而不是試圖找出屬性。我計算從相機的圖像的縱橫比和屏幕的縱橫比。之後,我重新調整圖像,保持原有的縱橫比。它使我能夠找到相機標準條的高度。

相關問題