2017-03-03 42 views
0

我想将UITapGestureRecogniser添加到我为UIImagePickerController创建的叠加视图中。但是没有检测到水龙头。以下是我的代码:如何在ImagePickerController()中的叠加视图上识别TapGesture?

//Setting up image picker controller 
let imagePicker = UIImagePickerController() 
imagePicker.delegate = self 
imagePicker.sourceType = .camera 
imagePicker.showsCameraControls = false 

//Setting up the tap gesture 
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.cropImageAroundTap(sender:))) 
tapGesture.delegate = self 

//Setting up overlay view 
let overlayView = UIView.init(frame: self.view.frame) 
overlayView.isOpaque = false 
overlayView.isUserInteractionEnabled = true 
overlayView.backgroundColor = UIColor.clear 
overlayView.addGestureRecognizer(tapGesture) 

imagePicker.cameraOverlayView = overlayView 
self.present(imagePicker, animated: true, completion: nil) 

如果我添加了手势识别器到imagePicker.view那么部分相机进行控制是检测水龙头,但不预览窗口。以下是我的功能检测水龙头:

func cropImageAroundTap(sender: UITapGestureRecognizer) { 

    if sender.state == .ended { 

     NSLog("hello") 
    } 

} 

有没有办法检测预览窗口上的点击?

+0

尝试使用的子视图sender.view –

+0

问题是选择器cropImageAroundTap甚至没有被调用。 –

回答

0

我能够检测图像拾取的预览视图的轻敲姿势时,而不是设置:

imagePicker.cameraOverlayView = overlayView 

我加了OverlayView的作为imagePicker

imagePicker.view.addSubview(overlayView)