自定义搜索完成后,相机会关闭吗?

时间:2019-07-05 07:49:26

标签: ios swift segue transition

我正在尝试使用自定义过渡到全屏自定义相机。当我使用缓慢淡入淡出的动画时,它在完成动画后会变成黑色。

  

在动画开始时似乎起作用的摄像机,   突然消失,留下黑色背景。

如何使过渡正常工作?

代码:

mainVC:

@objc func buttonUp(_ sender: UIButton) {

    toCam.transform = CGAffineTransform.identity.scaledBy(x: 1, y: 1)
    toCam.backgroundColor = .yellow

    segue()
}

func segue() {
    performSegue(withIdentifier: "GoToCam", sender: self)
}

自定义搜索类别:

class goToCamAnimCustom: UIStoryboardSegue {

    override func perform() {
        scale()
    }

    func scale() {

        guard let destinationView = self.destination.view else {
            // Fallback to no fading
            self.source.present(self.destination, animated: false, completion: nil)
            return
        }

        destinationView.alpha = 0
        self.source.view?.addSubview(destinationView)

        UIView.animate(withDuration: CATransaction.animationDuration(), animations: {
            destinationView.alpha = 0.5
        }, completion: { _ in
            self.source.present(self.destination, animated: false, completion: nil)
        })

    }
}

1 个答案:

答案 0 :(得分:1)

正如评论中提到的 @Gero 一样,问题在于customSegues无法与AVFoundation摄像机配合使用。特别是在您的自定义设置中,还会出现逻辑错误,可能会干扰摄像机设置。

无论如何,我将转向modalTransitionStyles或自定义过渡动画。 对于模式过渡样式:

var storyboard = UIStoryboard(name: "Main", bundle: nil)
var loginViewController = storyboard.instantiateViewController(withIdentifier: "toCam")
loginViewController.modalTransitionStyle = .crossDissolve
self.present(loginViewController, animated: true, completion: nil)

有关过渡动画,请参考以下问题: Custom Flip Segue in Swift