【问题标题】:How To Access Camera & Camera Roll Objective-C [closed]如何访问相机和相机胶卷 Objective-C [关闭]
【发布时间】:2014-01-26 07:45:28
【问题描述】:

我正在制作一个需要访问相机和相机胶卷的通用 iOS 应用程序。我该怎么办?我还没有要显示的代码,因为该应用程序主要基于此。

【问题讨论】:

标签: ios iphone objective-c ipad ipod


【解决方案1】:

您需要在 .h 文件中声明委托 UIImagePickerControllerDelegate

并使用此代码打开相机。

// Pick image from camera

- (IBAction)captureImage:(id)sender
{   
    if (! [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        UIAlertView *deviceNotFoundAlert = [[UIAlertView alloc] initWithTitle:@"No Device" message:@"Camera is not available"
                                                                 delegate:nil
                                                        cancelButtonTitle:@"Okay"
                                                            otherButtonTitles:nil];
        [deviceNotFoundAlert show];

    } else {

        UIImagePickerController *cameraPicker = [[UIImagePickerController alloc] init];
        cameraPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        cameraPicker.delegate =self;
        // Show image picker
        [self presentViewController:cameraPicker animated:YES completion:nil];
    }
}

【讨论】:

    【解决方案2】:

    此答案仅适用于物理设备!

    访问相机:

    - (void)takePhoto {
    
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    
        [self presentViewController:picker animated:YES completion:NULL];
    
    }
    

    访问相机胶卷:

    - (void)selectPhoto {
    
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    
        [self presentViewController:picker animated:YES completion:NULL];
    
    
    }
    

    实现 UIImagePickerController 的委托方法:

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    
        UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
        self.imageView.image = chosenImage;
    
        [picker dismissViewControllerAnimated:YES completion:NULL];
    
    }
    

    还有这个:

    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    
        [picker dismissViewControllerAnimated:YES completion:NULL];
    
    }
    

    源码here

    【讨论】:

    • 也感谢您的快速回复。我现在将尝试代码:)
    • 那里的第三个代码块出现错误,提示“在“ViewController *”类型的对象上找不到属性 imageView”。除此之外没有错误
    【解决方案3】:

    【讨论】:

    • 感谢您的快速回复!我会检查这些:)
    猜你喜欢
    • 2015-09-02
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多