Swift动画持续时间在CGAffineTransform中不起作用

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

当我以1秒的动画转换一个视图时,它不工作,但当我执行transform.identity时,它工作正常

这是我的密码:

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我正在吃午饭,我会尝试给你一个例子项目或更多关于这个问题的信息,并用你的其他答案做更多的测试!