1
프로그래밍 방식으로 추가 된 카메라 미리보기 레이어에 핀치 확대/축소를 추가하려고합니다. 나는이 코드를 함수로 가지고있다. 그러나 그것은 내가 가지고있는 팁이다. 나는 그것에 관련된 다른 코드를 가지고 있지 않다. 나는 그 (것)들의 주위에 더군다나 정보를 전부 정지 심상에 집중하는 것처럼 보이는 찾아 낼 수 없다.카메라 미리보기 레이어, iOS, 스위프트에 제스처 핀치 줌 추가
override func viewDidLoad() {
super.viewDidLoad()
let pinchRecognizer = UIPinchGestureRecognizer(target: self, action:#selector(pinch(_:)))
pinchRecognizer.delegate = self
self.cameraPreviewlayer.addGestureRecognizer(pinchRecognizer)
}
나는이 라인
self.cameraPreviewlayer.addGestureRecognizer (pinchRecognizer)
이 cameraPreviewLayer이 geture를 추가하지 않는다고 말했습니다에 오류가 발생합니다.
여기에 함수가 있습니다.
@objc func pinch(_ pinch: UIPinchGestureRecognizer) {
let device = videoDeviceInput.device
// Return zoom value between the minimum and maximum zoom values
func minMaxZoom(_ factor: CGFloat) -> CGFloat {
return min(min(max(factor, minimumZoom), maximumZoom), device.activeFormat.videoMaxZoomFactor)
}
func update(scale factor: CGFloat) {
do {
try device.lockForConfiguration()
defer { device.unlockForConfiguration() }
device.videoZoomFactor = factor
} catch {
print("\(error.localizedDescription)")
}
}
let newScaleFactor = minMaxZoom(pinch.scale * lastZoomFactor)
switch pinch.state {
case .began: fallthrough
case .changed: update(scale: newScaleFactor)
case .ended:
lastZoomFactor = minMaxZoom(newScaleFactor)
update(scale: lastZoomFactor)
default: break
}
}