UIView和StackView删除元素,Swift



我在viewController的一个单独文件中创建了一个自定义视图,然后以编程方式添加它。为了给你一些上下文,它只是一张屏幕高度为一半的卡片。在这张卡片里,我有一个垂直的堆叠视图,其中包含:

  • 水平堆叠视图
  • 两个按钮

在这张卡片中,我根据模型中的给定值执行一些操作。这是我的代码:

func myFunction() {
let value: Bool! = // true or false

if value {
self.stackView.isHidden = true
} else {
self.button1.isHidden = true
self.button2.isHidden = true
}
}

我在viewDidPappearlyfecycle中调用我的函数,如下所示:

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

问题是,当我用这个视图打开我的视图时,我看到在删除元素方面有一些滞后。例如,如果值为true,所以我删除了水平堆栈视图,我仍然可以看到它0.5秒,然后它消失了,我只有按钮。

我以为这是模拟器,设备会做得更好,但还是一样。。。我是不是错过了什么?有没有一些动画或技巧可以立即执行?

使用viewWillAppear而不是viewDidPear。

最新更新