2015-09-28 234 views
0

嗨我使用UIImagePickerController與源類型的相機。我想知道它沒有顯示像iOS聯繫人應用程序(從相機拍攝個人照片)的完整捕捉模式。UIIMagePickerController +相機+全屏捕捉照片

我的代碼顯示黑屏和iOS本機顯示全屏幕的頂部和底部欄,捕獲下一個重新拍攝屏幕。

這裏是我的屏幕截圖enter image description here

回答

0
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; 

imagePickerController.delegate = self; 
imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage, nil]; 
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; 

UIView *controllerView = imagePickerController.view; 

controllerView.alpha = 0.0; 
controllerView.transform = CGAffineTransformMakeScale(0.5, 0.5); 

[[[[UIApplication sharedApplication] delegate] window] addSubview:controllerView]; 

[UIView animateWithDuration:0.3 
       delay:0.0 
      options:UIViewAnimationOptionCurveLinear 
     animations:^{ 
      controllerView.alpha = 1.0; 
     } 
     completion:nil]; 
+0

不工作,但縮小了我想要的相機準確的Iphone本地聯繫人應用程序打開捕獲圖像,同時使用相機編輯個人資料照片 – user100

+0

@sanjay,你在這裏做的事情 - 很可能 - 非常,但非常錯誤的想法。你正在從它的視圖控制器中解放出一個視圖,該視圖控制器處理所有的功能,當談論像這樣的私人的,Apple提供的類時,這絕不是一個好選擇。在最好的情況下,這將導致無效/非工作代碼泄露,更糟的情況是,即時崩潰。 – michi

0

我相信這是一個UIImagePickerController默認行爲(與周圍區域捕獲的黑巴,至少在某些設備上)。

聯繫人應用程序可能只是在演示之前更改其-cameraViewTransform屬性,以便用捕獲視圖填充整個屏幕,但此設置因您即將使用的設備和捕獲質量而異。

+0

正如我所說,你可能會嘗試更新''''UIImagePickerController'''的'''-cameraViewTransform'''屬性,然後顯示給用戶,但它的位置是不一致的捕獲和重拍屏幕IIRC,所以你將不得不A)一些更深層次的魔法,通過加入/配合捕捉功能等等或B)使用完全不同的第三方組件。 '''UIImagePickerController'''基本上不是很可定製的。 – michi

+0

你說得對。設置CGFloat cameraTransformX = 1後; CGFloat cameraTransformY = 1.5; Camerapicker.cameraViewTransform = CGAffineTransformScale(Camerapicker.cameraViewTransform,cameraTransformX,cameraTransformY);拾取器顯示全屏,但重拍屏幕仍然保留爲默認拾取器顯示 – user100

+0

是的,但請記住:•每個設備和方向的轉換的正確/精確像素完美值不同•您應該使用相同值轉換兩個軸,否則捕獲視圖將被扭曲 – michi

相關問題