当使用 UIView.animate 对视图进行动画处理时,其他视图也不必要地进行动画处理

问题描述 投票:0回答:3

我想知道为什么我的自定义 TableViewCells 中的视图会受到动画的影响,而动画应该只对浮动寻呼机中的 2 个视图进行动画处理(甚至不在 TableView 的视图层次结构中......

UIView.animate(withDuration: 0.3) {
    self.stateIndicator.isHiddenInStackView = true
    self.loaderIndicator.isHiddenInStackView = false
}

当我注释掉动画块时,所有内容都会停止动画。

附加的 GIF 描述了一切(蓝色视图获得动画角半径,徽章“飞入”而不是仅仅出现):

UIView.animate 奇怪的行为

任何帮助或提示将不胜感激:)。

问候汤姆。

ios swift animation uiview
3个回答
3
投票

在块中写下您不想设置动画的内容

  UIView.performWithoutAnimation {
     //Write your code here
  }

0
投票

我在主队列中制作动画并且它有效。 例如

DispatchQueue.main.async {
     //Write animation code here
}

0
投票

偶然发现类似的问题,所以我想无论如何我都会在这里留下我的印记:) 想要简单地滑入标签并使用

UIView.animate....
完成整个操作,但在我找到此修复程序之前它仍然不起作用

view.layoutIfNeeded()
welcomeConstraint.constant = 10
UIView.animate(withDuration: 1.0) { [weak self] in
    self?.view.layoutIfNeeded()
}

在我的例子中,第一个

view.layoutIfNeeded()
丢失了,整个视图也从左上角开始奇怪地动画,直到我添加了这一点。现在它可以正常工作了

© www.soinside.com 2019 - 2024. All rights reserved.