gpt4 book ai didi

ios - 如何实现捏合放大相机(Swift 3)?

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:36 25 4
gpt4 key购买 nike

我想在 QR 应用程序中实现一个简单的缩放手势。
这看起来很简单,所以我做了一些研究,找到了一些可能的问题答案:

AVCaptureDevice Camera Zoom
How to implement "pinch to zoom" in custom camera
Pinch to zoom camera
Zooming while capturing video using AVCapture in iOS

不幸的是,没有一个能真正按照我的意愿解决它,我个人喜欢第一个(在 Objective-C 中),并尝试在 Swift 3 中实现。

我用经过一些尝试后得出的代码发布了一个答案,欢迎使用其他更简单/更好/更简单的解决方案:)

最佳答案

我使用 Storyboard中的 Pinch Gesture Recognizer,然后链接此操作:

@IBAction func pinchToZoom(_ sender: UIPinchGestureRecognizer) {

guard let device = captureDevice else { return }

if sender.state == .changed {

let maxZoomFactor = device.activeFormat.videoMaxZoomFactor
let pinchVelocityDividerFactor: CGFloat = 5.0

do {

try device.lockForConfiguration()
defer { device.unlockForConfiguration() }

let desiredZoomFactor = device.videoZoomFactor + atan2(sender.velocity, pinchVelocityDividerFactor)
device.videoZoomFactor = max(1.0, min(desiredZoomFactor, maxZoomFactor))

} catch {
print(error)
}
}
}

请注意,captureDeviceAVCaptureDevice 类的可选对象。

关于ios - 如何实现捏合放大相机(Swift 3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43278701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com