GVKun编程网logo

使用Swift将相机焦点设置在点击点上(相机上focus)

10

如果您对使用Swift将相机焦点设置在点击点上感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于使用Swift将相机焦点设置在点击点上的详细内容,我们还将为您解答相机上focu

如果您对使用Swift将相机焦点设置在点击点上感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于使用Swift将相机焦点设置在点击点上的详细内容,我们还将为您解答相机上focus的相关问题,并且为您提供关于ios – 使用swift 4.0编译的模块无法在swift 3.1中导入、ios – 使用Swift 4.0编译的模块无法在Swift 4.0.1中导入、ios – 使用Swift与Swift构建聊天功能的教程?、ios – 使用Swift将相机焦点设置在Tap point上的有价值信息。

本文目录一览:

使用Swift将相机焦点设置在点击点上(相机上focus)

使用Swift将相机焦点设置在点击点上(相机上focus)

快速使用相机的API似乎有些不同,但我很难将相机聚焦在某个点上。当用户点击屏幕时,我希望相机将焦点对准该点

这是我的代码:

 func focusCamera(point:CGPoint)    {        var screenRect:CGRect = bounds        var focusX = Float(point.x/screenRect.width)        var focusY = Float(point.y/screenRect.height)        _currentDevice.lockForConfiguration(nil)        _currentDevice.setFocusModeLockedWithLensPosition(focusX)        {            time in            self._currentDevice.unlockForConfiguration()        }        _currentDevice.setFocusModeLockedWithLensPosition(focusY)        {                time in                self._currentDevice.unlockForConfiguration()        }    }

但这似乎不起作用。

任何建议都值得欢迎!

答案1

小编典典

事实证明,它非常简单:

_currentDevice.lockForConfiguration(nil)_currentDevice.focusPointOfInterest = tap.locationInView(self)_currentDevice.unlockForConfiguration()

ios – 使用swift 4.0编译的模块无法在swift 3.1中导入

ios – 使用swift 4.0编译的模块无法在swift 3.1中导入

显然我已经设法在Xcode 9 beta中构建我的项目,现在我只得到错误

Module compiled with swift 4.0 cannot be imported in swift 3.1

当我在Xcode 8中运行项目时.我的模块中的模块是Alamofire.我试图重新启动Xcode,但没有任何想法如何解决这个问题?

解决方法

您有两种选择:
清理项目,然后尝试重新构建解决方案,看看它是否有效.

如果它不起作用,您仍然会收到相同的错误消息,请执行以下步骤,它应该适合您:

>打开您的podfile并删除Alamofire>运行pod更新>将Alamofire重新添加到您的podfile中>运行pod更新>完成后,清理项目并运行它

ios – 使用Swift 4.0编译的模块无法在Swift 4.0.1中导入

ios – 使用Swift 4.0编译的模块无法在Swift 4.0.1中导入

但是我使用相同的Xcode重新编译了框架,它仍然给我这个错误.

>基础SDK iOS 11.1
> Swift语言版本Swift 4.0
>不使用Pods / Carthage

我希望有人知道

解决方法

更新:

对于Xcode的发布版本:

当使用Xcode 9.1,9.2,9.3,9.4,10等打开使用早期Xcode工具构建的框架的项目时,将发生此错误(以及涉及Swift 4.1,4.2等的类似错误).

要解决此问题,请使用Carthage(carthage update –platform iOS),Cocoapods(pod更新或pod安装)或使用新更新的Xcode工具手动更新和重建框架.更新Xcode时应自动更新这些工具,但如果没有,您可以按照原始答案中列出的步骤进行操作.

您可能还需要清理项目cmd shift k以及可能的构建文件夹cmd选项shift k以使Xcode不使用缓存的框架构建.

在某些情况下,您可能还需要删除派生数据文件夹(通过转到Xcode首选项 – >位置 – >派生数据文件夹轻松找到
 (谢谢特纳)

对于Xcode的beta版本:

请参阅以下原始答案,然后按照上述步骤操作

原答案:

您可能仍然将xcodebuild工具设置为使用Swift 4.0构建的Xcode 9.0,并且与Xcode 9.1 beta的Swift 4.0.1不兼容.

使用以下命令检入终端:

xcodebuild -version

或者只是进入Xcode首选项 – >位置并检查/更改命令行工具到Xcode 9.1.你应该设置好.

ios – 使用Swift与Swift构建聊天功能的教程?

ios – 使用Swift与Swift构建聊天功能的教程?

我正在寻找Layer的 Swift文档,因为我正在寻找一种快速方法将聊天功能集成到我的应用程序中.非常感谢!

解决方法

我是Layer的合作伙伴工程师. Layer仍然在为Swift的LayerKit开发Swift文档,我们希望尽快提供一些东西.我开始在Swift中构建Layer的Quick Start项目的端口.这个项目是不完整的,并且正在进行中,但是它会让你知道从哪里开始使用Layer和Swift: https://github.com/maju6406/QuickStartSwift

ios – 使用Swift将相机焦点设置在Tap point上

ios – 使用Swift将相机焦点设置在Tap point上

在swift中使用相机的API似乎有些不同,我很难将相机对准一个点.当用户点击屏幕时,我希望相机对焦于该点

这是我的代码:

func focusCamera(point:CGPoint)
    {
        var screenRect:CGRect = bounds
        var focusX = Float(point.x/screenRect.width)
        var focusY = Float(point.y/screenRect.height)

        _currentDevice.lockForConfiguration(nil)
        _currentDevice.setFocusModeLockedWithLensPosition(focusX)
        {
            time in
            self._currentDevice.unlockForConfiguration()
        }

        _currentDevice.setFocusModeLockedWithLensPosition(focusY)
        {
                time in
                self._currentDevice.unlockForConfiguration()
        }
    }

但它似乎没有用.

任何建议都非常欢迎!

解决方法

来自@ryantxr for Swift 3的更新答案:

override func touchesBegan(_ touches: Set<UITouch>,with event: UIEvent?) {
        let screenSize = videoView.bounds.size
        if let touchPoint = touches.first {
            let x = touchPoint.location(in: videoView).y / screenSize.height
            let y = 1.0 - touchPoint.location(in: videoView).x / screenSize.width
            let focusPoint = CGPoint(x: x,y: y)

            if let device = captureDevice {
                do {
                    try device.lockForConfiguration()

                    device.focusPointOfInterest = focusPoint
                    //device.focusMode = .continuousAutoFocus
                    device.focusMode = .autoFocus
                    //device.focusMode = .locked
                    device.exposurePointOfInterest = focusPoint
                    device.exposureMode = AVCaptureExposureMode.continuousAutoExposure
                    device.unlockForConfiguration()
                }
                catch {
                    // just ignore
                }
            }
        }
    }

关于使用Swift将相机焦点设置在点击点上相机上focus的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于ios – 使用swift 4.0编译的模块无法在swift 3.1中导入、ios – 使用Swift 4.0编译的模块无法在Swift 4.0.1中导入、ios – 使用Swift与Swift构建聊天功能的教程?、ios – 使用Swift将相机焦点设置在Tap point上的相关信息,请在本站寻找。

本文标签: