Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实现SwiftyCam焦点动画-Swift_Swift_Animation_Avfoundation_Uiviewanimation - Fatal编程技术网

实现SwiftyCam焦点动画-Swift

实现SwiftyCam焦点动画-Swift,swift,animation,avfoundation,uiviewanimation,Swift,Animation,Avfoundation,Uiviewanimation,每当我点击屏幕聚焦时,我都会尝试实现一个动画。 我正在使用这个GitHub存储库: 我的实现的问题是,动画不是以作为参数传递给函数的中心为中心,而是在屏幕左上角播放动画 func swiftyCam(_ swiftyCam: MyCameraViewController, didFocusAtPoint point: CGPoint) { focusAnimationAt(point) } fileprivate func focusAnimationAt(_ poin

每当我点击屏幕聚焦时,我都会尝试实现一个动画。 我正在使用这个GitHub存储库:

我的实现的问题是,动画不是以作为参数传递给函数的中心为中心,而是在屏幕左上角播放动画

 func swiftyCam(_ swiftyCam: MyCameraViewController, didFocusAtPoint point: CGPoint) {
    
    focusAnimationAt(point)
}



fileprivate func focusAnimationAt(_ point: CGPoint) {
    
    let focusView = UIImageView(image: #imageLiteral(resourceName: "focusImage"))
    focusView.translatesAutoresizingMaskIntoConstraints = false
    focusView.heightAnchor.constraint(equalToConstant: 40).isActive = true
    focusView.widthAnchor.constraint(equalToConstant: 40).isActive = true
    focusView.center = point
    focusView.alpha = 0.0
    view.addSubview(focusView)
    
    UIView.animate(withDuration: 0.25, delay: 0.0, options: .curveEaseInOut, animations: {
        focusView.alpha = 1.0
        focusView.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)
    }) { (success) in
        UIView.animate(withDuration: 0.15, delay: 0.5, options: .curveEaseInOut, animations: {
            focusView.alpha = 0.0
            focusView.transform = CGAffineTransform(translationX: 0.6, y: 0.6)
        }) { (success) in
            focusView.removeFromSuperview()
        }
    }
}