【问题标题】:Error to open Custom Camera (Objective-c)打开自定义相机时出错(Objective-c)
【发布时间】:2016-06-03 07:04:51
【问题描述】:

我尝试制作自定义相机,但它不起作用。我还需要添加一个叠加层,但我不知道如何。有人可以帮助我吗?

    - (IBAction)AbrirCamara:(id)sender {
UIImagePickerController *picker = [UIImagePickerController new];
                                                   picker.delegate = self;

                                                   if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
                                                   {



                                                       picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
                                                       picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
                                                       picker.showsCameraControls = NO;
                                                       picker.navigationBarHidden = YES;
                                                       picker.toolbarHidden = YES;
                                                       picker.wantsFullScreenLayout = YES;



                                                       picker.sourceType = UIImagePickerControllerSourceTypeCamera;
                                                       [self presentViewController:picker animated:YES completion:nil];
                                                   }}

这是错误。

      Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Source type must be UIImagePickerControllerSourceTypeCamera'
*** First throw call stack:
(0x2ed43f0b 0x394dace7 0x317cf6d9 0x317cf551 0xdc7e7 0x315a86c7 0x315a8663 0x315a8633 0x31593d7b 0x315a807b 0x3156b541 0x315a3325 0x315a2c4b 0x31577e75 0x31576541 0x2ed0efef 0x2ed0e4b7 0x2ed0cca7 0x2ec77769 0x2ec7754b 0x33be46d3 0x315d6891 0xde565 0x399d8ab7)
libc++abi.dylib: terminating with uncaught exception of type NSException

【问题讨论】:

  • 首先,picker.sourceType = UIImagePickerControllerSourceTypeCamera;它有效
  • 您是否遇到设备崩溃?
  • @SeekerOne 请正确格式化您的代码,最好避免水平滚动。

标签: ios objective-c camera uiimagepickercontroller


【解决方案1】:
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = self;

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{

    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    picker.showsCameraControls = NO;
    picker.navigationBarHidden = YES;
    picker.toolbarHidden = YES;
    picker.wantsFullScreenLayout = YES;

    [self presentViewController:picker animated:YES completion:nil];
}

您的问题是您在发生错误的下方写入 sourceType。 在您设置其他控制器之后首先设置 SourceType。

【讨论】:

    【解决方案2】:

    在分配图像选择器控制器后设置picker.sourceType = UIImagePickerControllerSourceTypeCamera 并在外部进行其他设置,例如cameraDevicemode 等。只需将选择器显示在 if 中。

    并确保您已将 UIImagePickerControllerSourceTypeCamera 设置为 sourcetype,因为您的错误似乎是您设置了错误的源类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多