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

时间:2018-05-26 22:08:00

标签: swift animation cgaffinetransform

当我使用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
    })
}

Carousel Not Working

1 个答案:

答案 0 :(得分:2)

为了解决这个问题,我强制动画在主线程中运行。每次遇到动画或更新标签文本等UI元素的性能问题时,请尝试强制在主线程中运行UI更改。

    DispatchQueue.main.async {
        UIView.animate(withDuration: 1, animations: {
            self.carouselER.transform  = CGAffineTransform(translationX: 0, y: 200)
        })
    }

我还遇到了一个更新标签的计时器问题,但在本期中我认为这是CGAffineTransform的某种问题。

Carousel Working