Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将iOS摄像头对焦到点击位置_Ios_Iphone_Swift - Fatal编程技术网

将iOS摄像头对焦到点击位置

将iOS摄像头对焦到点击位置,ios,iphone,swift,Ios,Iphone,Swift,我有一个手势识别器,当屏幕被点击时,它会调用下面的函数 设备处于纵向模式,cameraView占据屏幕50%到90%的可变高度,但这并不重要,因为我在该视图中获得了点击位置 apple文档说明焦点是一个标准化坐标(x和y都在0和1之间),在横向模式下左上角(主页按钮位于右侧)位于(0,0),右下角位于(1,1) 将对焦模式设置为自动对焦而不是连续自动对焦会使情况变得更糟。我错过了什么?其他应用程序也可以正常工作 func focusPhoto(recognizer : UITapGestureR

我有一个手势识别器,当屏幕被点击时,它会调用下面的函数

设备处于纵向模式,
cameraView
占据屏幕50%到90%的可变高度,但这并不重要,因为我在该视图中获得了点击位置

apple文档说明焦点是一个标准化坐标(x和y都在0和1之间),在横向模式下左上角(主页按钮位于右侧)位于(0,0),右下角位于(1,1)

将对焦模式设置为自动对焦而不是连续自动对焦会使情况变得更糟。我错过了什么?其他应用程序也可以正常工作

func focusPhoto(recognizer : UITapGestureRecognizer) {
    if photoCaptureDevice.lockForConfiguration(nil) && photoCaptureDevice.focusPointOfInterestSupported {
        var tapLocation = recognizer.locationInView(cameraView);
        var focalPoint = CGPoint(x: tapLocation.x/cameraView.frame.width, y: tapLocation.y/cameraView.frame.height);

        photoCaptureDevice.focusPointOfInterest = focalPoint
        //photoCaptureDevice.focusMode = AVCaptureFocusMode.AutoFocus

        photoCaptureDevice.unlockForConfiguration()
    }
}
也尝试过这样做:

func focusPhoto(recognizer : UITapGestureRecognizer) {
    if photoCaptureDevice.lockForConfiguration(nil) && photoCaptureDevice.focusPointOfInterestSupported {
        photoCaptureDevice.focusPointOfInterest = previewLayer!.captureDevicePointOfInterestForPoint(tapLocation)

        photoCaptureDevice.unlockForConfiguration()
    }
}

您使用的是
AVCaptureVideoPreviewLayer

有一种方法可用于将抽头点转换为正确的坐标空间进行聚焦


-captureDevicePointOfInterestForPoint:

请参阅我的更新。不能让它工作,但也许我做错了?