【问题标题】:how to create a camera overlay view that recognized swipe gestures?如何创建识别滑动手势的相机覆盖视图?
【发布时间】:2013-07-24 07:59:29
【问题描述】:

我正在尝试创建一个可以识别滑动手势以推送到其他视图的相机叠加层。

我想知道我是否仍然可以使用 UIImagePicker,或者我是否必须使用 AVCaptureSessionManager。

另外我更喜欢在故事板中创建覆盖视图有没有办法做到这一点? 我可以在情节提要控制器中选择一个视图作为相机叠加层,然后简单地在视图上显示 UIImagePicker 确实加载了吗?

【问题讨论】:

    标签: uiimagepickercontroller avcapturesession camera-overlay


    【解决方案1】:

    我从未使用 Storyboard 创建相机叠加层,但我创建了一个运行良好的 xib。您可以以普通 (xib) 方式创建覆盖视图控制器,并配有手势识别器,然后您可以直接在该 VC 中处理它们或使用委托(很可能是提供相机的 VC)。

    一些代码 -

    -(void)setupCamera
    {
        self.picker = [[UIImagePickerController alloc] init];
    
        _picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        _picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    
        self.overlay = [[OverlayViewController alloc] init];
        _overlay.delegate = self;
    
        _picker.cameraOverlayView = _overlay.view;
        _picker.delegate = self;
    
        [self presentViewController:self.picker animated:YES completion:nil];
    }
    

    叠加层-

    -(id)init
    {
        self = [super initWithNibName:@"OverlayViewController" bundle:nil];
    
        if (self)
        {
            // set up stuff
        }
        return self;
    }
    

    ... & 一些处理滑动的代码 -

    -(IBAction)swipe:(UISwipeGestureRecognizer *)sender
    {
        // swipe stuff
        [self.delegate doSwipeStuff]; // if you want the delegate to handle it
    }
    

    希望这会有所帮助。

    【讨论】:

    • 感谢您迄今为止的帮助!但是我无法设置 OverlayViewController 的委托。到目前为止,我拥有的是一个带有 .xib 文件的 OverlayViewController,其中包含手势识别器和一个 take_photo 按钮。但是,当我在我的 CameraViewController 上 setupCamera 时,我无法将 OverlayViewController 的代表分配为当前的 CameraViewController,它将响应 take_photo 按钮/gesture_swipe。我收到错误消息:在 OverlayViewController 上找不到属性委托...
    • 听起来你需要对委托的使用做一些阅读——这对很多东西来说都是非常基础的(也就是说,很多新框架都使用块代替,但委托仍然发挥作用非常重要的作用)——看看Ray Wenderlich的教程——raywenderlich.com/forums/viewtopic.php?f=10&t=3265
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多