2014-06-11 28 views
0

我有一些代碼完全適用於iPad的運行在iPhone攝像頭(OS 7)

self.clockInEmployee = nil; 
self.clockInEmployee = [[userInfo userInfo] valueForKey:@"employee"]; 
self.clockInEmployeeRole = [[userInfo userInfo] valueForKey:@"role"]; 
CLog (@"PIN %@", self.clockInEmployee.pin); 

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = (id)self; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
picker.showsCameraControls = YES; 
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
picker.cameraOverlayView = self.cameraOverlay.view; 
if (isPhone()) 
{ 
    picker.view.frame = CGRectMake(0, 748, 1024, 748); 
    [mainNavController.view addSubview:picker.view]; 
    [UIView animateWithDuration:0.5 animations:^{ 
     picker.view.frame = CGRectMake(0, 0, 1024, 748); 

    } completion:^(BOOL finished){ 
     [picker viewDidAppear:YES]; 
    }]; 
} 
modViewController = picker; 

,但在iPhone上時,它嘗試推出的相機,我只看到黑屏。

但是,如果我嘗試推出它這樣:

[appPresentingViewController presentViewController:picker animated:YES completion:nil]; 

,成功啓動。但在我的特定項目中,它會導致一些UI問題,所以無法使用。

我怎樣才能讓這個

if (isPhone()) 
{ 
    picker.view.frame = CGRectMake(0, 748, 1024, 748); 
    [mainNavController.view addSubview:picker.view]; 
    [UIView animateWithDuration:0.5 animations:^{ 
     picker.view.frame = CGRectMake(0, 0, 1024, 748); 

    } completion:^(BOOL finished){ 
     [picker viewDidAppear:YES]; 
    }]; 
} 

兩個iPad和iPhone的工作?

回答

0

請試試這個: - 進一步refrence

//create an overlay view instance 
OverlayView *overlay = [[OverlayView alloc] 
     initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)]; 

//create a new image picker instance 
UIImagePickerController *picker = 
       [[UIImagePickerController alloc] init]; 
//set source to video! 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
//hide all controls 
picker.showsCameraControls = NO; 
picker.navigationBarHidden = YES; 
picker.toolbarHidden = YES; 
//make the video preview full size 
picker.wantsFullScreenLayout = YES; 
picker.cameraViewTransform = 
CGAffineTransformScale(picker.cameraViewTransform, 
      CAMERA_TRANSFORM_X, 
      CAMERA_TRANSFORM_Y); 
//set our custom overlay view 
picker.cameraOverlayView = overlay; 

//show picker 
[self presentModalViewController:picker animated:YES]; 

- here

0

你可能喜歡去通過AVCAM的蘋果樣品的項目可以發現here

你需要做什麼是這樣的:

AVCaptureSession *avcam = [[AVCaptureSession alloc] init]; 
    AVCaptureVideoPreviewLayer *previewLayer = 
     [AVCaptureVideoPreviewLayer layerWithSession:avcam]; 
    previewLayer.frame = self.previewView.bounds; 
    [self.previewView.layer addSublayer:previewLayer];