【问题标题】:How to Zoom camera using pan gesture like TikTok App如何使用 TikTok App 等平移手势缩放相机
【发布时间】:2018-12-14 11:37:29
【问题描述】:

我正在开发录像机应用程序,我想要 Titok 的功能,例如在平移手势上他们正在缩放相机我使用了以下代码但使用此代码我可以通过拖动进行缩放,这是不可行的我想要继续放大和缩小。

@objc func previewPan(recognizer:UIPanGestureRecognizer) {
        viewShoot.isHidden = false
        //DispatchQueue.main.async {


        if recognizer.state == UIGestureRecognizerState.began {

            //self.StartRecording()

            //self.startPoint = recognizer.location(in: self.viewShoot)
            startPoint = recognizer.location(in: self.viewAnimate)

            self.zoomAtStart = self.recorder.videoZoomFactor

        } else if recognizer.state == UIGestureRecognizerState.changed {

            //let newPoint = recognizer.location(in: self.viewShoot)
            let newPoint = recognizer.location(in: self.viewAnimate)

            let scale = self.startPoint.y / newPoint.y
            var newZoom = scale * self.zoomAtStart

            if newZoom > self.maxZoomFactor {
                newZoom = self.maxZoomFactor
            } else if newZoom < self.minZoomFactor {
                newZoom = self.minZoomFactor
            }
            self.recorder.videoZoomFactor = newZoom

            //------->
            //self.viewShoot.isHidden = false
            //self.viewAnimate.isHidden = false

            //self.view.bringSubview(toFront: self.viewShoot)
            self.view.bringSubview(toFront: self.viewAnimate)

            let translation = recognizer.translation(in: self.view)

            //self.viewShoot.center = CGPoint(x: self.viewShoot.center.x + translation.x, y: self.viewShoot.center.y + translation.y)
            self.viewAnimate.center = CGPoint(x: self.viewAnimate.center.x + translation.x, y: self.viewAnimate.center.y + translation.y)


            recognizer.setTranslation(CGPoint.zero, in: self.view)

        } else if recognizer.state == UIGestureRecognizerState.ended {

            //self.StopRecording()

            UIView.animate(withDuration: 0.250) {
                //self.viewShoot.frame = self.originalPossion
                self.viewAnimate.frame = self.originalPossion
            }
        }
        //}
    }

请帮忙!

【问题讨论】:

标签: ios swift zooming gesture pan


【解决方案1】:

我已经使用NextLevelZoom解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多