UI зависает при нажатии ViewController - PullRequest
0 голосов
/ 13 января 2019

У меня проблема с отображением моих ViewControllers. Иногда случается это ... замораживание пользовательского интерфейса при нажатии нового ViewController. Все элементы пользовательского интерфейса созданы программно с помощью SnapKit (в текущем коде класса CameraUI).

GIF демо: https://radikal.ru/video/VeDy5trCfNn

Pushing Action от источника ViewController

@objc func cameraAction(){
        let cameraVC = CameraViewController()
        self.navigationController?.pushViewController(cameraVC, animated: true)
    }

CameraViewController

class CameraViewController: UIViewController{
lazy var UI = CameraUI(view: self.view, navController: self.navigationController!)
override func viewDidLoad() {
        super.viewDidLoad()

        title = "Camera"
        addUIElements()
        setupCaptureSession()
        setupDevice()
        setupInputOutput()
        setupPreviewLayer()
        startRunningCaptureSession()
        addActions()
    }
private func addUIElements(){
        UI.addElementsToSuperView()
        view.layoutIfNeeded()
    }
}

1 Ответ

0 голосов
/ 13 января 2019

Вы не предоставили много кода, но рискну предположить, что проблема в том, что вы вызываете методы, которые препятствуют отображению экрана.

Вы должны попытаться переместить некоторые методы настройки камеры в viewWillApear или viewDidAppear.

Посмотрите на эти методы:

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