Удаление элементов UIView и StackView, Swift - PullRequest
0 голосов
/ 08 июля 2020

Я создал пользовательский View в отдельном файле из моего viewController, а затем добавляю его программно. Чтобы дать вам некоторый контекст, это просто карточка с половиной высоты экрана. Внутри этой карты у меня есть вертикальный stackView, содержащий:

  • Horizontal stackView
  • Две кнопки

На этой карте я выполняю некоторые действия на основе заданного значения от моей модели. Это мой код:

func myFunction() {

    let value: Bool! = // true or false
    
    if value {
        self.stackView.isHidden = true
    } else {
        self.button1.isHidden = true
        self.button2.isHidden = true
    }

}

Я вызываю свою функцию в viewDidAppear lyfecycle следующим образом:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    self.myFunction()
}

Проблема в том, что когда я открываю свое представление с этим view Я вижу некоторое отставание при удалении элементов. Например, если значение истинно, поэтому я удаляю свой горизонтальный стек, я все еще вижу его примерно 0,5 секунды, а затем он исчезает, и у меня есть только мои кнопки.

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

1 Ответ

1 голос
/ 08 июля 2020

Вместо viewDidAppear используйте viewWillAppear.

...