Swift动画持续时间在CGAffineTransform中不起作用
当我以1秒的动画转换一个视图时,它不工作,但当我执行transform.identity时,它工作正常 这是我的密码:Swift动画持续时间在CGAffineTransform中不起作用,swift,animation,cgaffinetransform,Swift,Animation,Cgaffinetransform,当我以1秒的动画转换一个视图时,它不工作,但当我执行transform.identity时,它工作正常 这是我的密码: func hideCarousel() { UIView.animate(withDuration: 1, animations: { self.carouselER.transform = CGAffineTransform(translationX: 0, y: 200) }) } func showCarousel() { UI
func hideCarousel() {
UIView.animate(withDuration: 1, animations: {
self.carouselER.transform = CGAffineTransform(translationX: 0, y: 200)
})
}
func showCarousel() {
UIView.animate(withDuration: 1, animations: {
self.carouselER.transform = .identity
})
}
为了解决这个问题,我强制在主线程中运行动画。每当您的UI元素(如动画或更新标签文本)的性能出现问题时,请尝试在主线程中强制运行UI更改
DispatchQueue.main.async {
UIView.animate(withDuration: 1, animations: {
self.carouselER.transform = CGAffineTransform(translationX: 0, y: 200)
})
}
我也遇到过一个更新标签的计时器的问题,但在本期中,我认为这是CGAffineTransform的某种问题
是否尝试在动画块的末尾添加
self.view.layoutifneed
?是的,我尝试过,但问题不是视图没有布局,问题是它没有进行动画,问题是它在不同的队列中执行,因为我有更多的视图控制器,我已经在下面发布了我的答案:)@PabloSanchezGomez我已经创建了一个新项目并检查了你的代码。它在没有DispatchQueue.main的情况下正常工作。async@trungduc我正在吃午饭,我会尝试给你一个例子项目或更多关于这个问题的信息,并用你的其他答案做更多的测试!