【问题标题】:How to show live camera preview as soon as iOS app launches?iOS应用程序启动后如何显示实时相机预览?
【发布时间】:2016-11-13 23:20:07
【问题描述】:

我正在这里学习有关构建相机应用程序的教程:https://www.appcoda.com/ios-programming-camera-iphone-app/

这是一个简单的应用程序,带有一个图像视图和两个按钮,一个用于拍照,另一个用于从设备照片库中选择一张照片。

所以当我按下拍照按钮的那一刻,相机出现,我可以拍照等等。

但是,有没有一种方法可以在应用程序启动和打开后立即显示实时相机预览,而无需先明确按“拍照”?我将如何在 viewDidLoad 或其他地方触发它?我需要使用 AV Foundation 吗?

目前我的程序正在使用图像选择器控制器使用此代码向用户展示相机:

- (IBAction)takePhoto:(UIButton *)sender {

        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;

        [self presentViewController:picker animated:YES completion:NULL];

}

【问题讨论】:

    标签: ios objective-c camera


    【解决方案1】:

    很抱歉简短的回答,但是是的,您需要使用 AVFoundation。没有像样的方法可以将 UIImagePickerController 嵌入到您的视图中。

    当然,您可以使用-[UIViewController addChildViewController:],然后将 imagePickers 视图作为子视图添加到您的 viewController 中:

    [[self view] addSubview:[pickerVC view]];
    
    [self addChildViewController:pickerVC];
    [pickerVC didMoveToParentViewController:self];
    

    但老实说,您最好使用AVFoundation 来实现摄像头,因为我个人认为,上述方法现在看起来有点“骇人听闻”。此外,您还需要正确处理自动布局,我真的不知道 UIImagePickerViewController 是否特别喜欢被这样对待。 请记住,这些组件是为特定用例和特殊目的而构建的,而不是像UIViewController这样的通常的子类开放解决方案@

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多