Не работает 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.+ все работало отлично!


Ответы (1 шт):

Автор решения: VAndrJ

Для изменения zoom видео используйте метод:

ramp(toVideoZoomFactor:withRate:)

→ Ссылка