Не работает zoom камеры на iOS
После обновления iOS до версии 14.0 рабочий код по zoom камеры по жестам перестал работать. Управление осуществляется камерой запускаемой ARKit. Никаких ошибок не возникает. Код привожу ниже:
@objc public func zoom(pinch: UIPinchGestureRecognizer) {
guard let device = backCamera else {return}
func minMaxZoom(_ factor: CGFloat) -> CGFloat {
return min(max(factor, 1.0), device.activeFormat.videoMaxZoomFactor)
}
func update(scale factor: CGFloat) {
do {
try device.lockForConfiguration()
defer { device.unlockForConfiguration() }
device.videoZoomFactor = factor
print("DEBUG \(device.videoZoomFactor)")
} catch {
debugPrint(error)
}
}
let newScaleFactor = minMaxZoom(pinch.scale * zoomFactor)
switch pinch.state {
case .began: fallthrough
case .changed: update(scale: newScaleFactor)
print("NEW \(device.videoZoomFactor)")
case .ended:
zoomFactor = minMaxZoom(newScaleFactor)
update(scale: zoomFactor)
print("NEW \(device.videoZoomFactor)")
default: break
}
}
Заметил что при выводе в консоль значения device.videoZoomFactor после присвоения ему значения, оно не меняется. Сломал всю голову как это исправить на версиях 13.+ все работало отлично!