После завершения пользовательского перехода камера выключается? - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь использовать пользовательский переход к полноэкранной пользовательской камере.Когда я делаю это с использованием медленной анимации затухания, она после завершения анимации становится черной.

Камера, которая в начале анимации, кажется, работает, внезапно уходит, оставляя позади черный фон.

Как сделать так, чтобы переход работал правильно?

Код:

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)
}

Пользовательский класс segue:

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 Ответ

1 голос
/ 19 июля 2019

Как упомянуто в комментариях @ 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)

А для анимации перехода обратитесь к этому вопросу: Пользовательский флип Segue в Swift

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...