斯威夫特动画持续时间CGAffineTransform不工作(Swift Animate durat

2019-11-04 18:22发布

当我翻译一个视图以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
    })
}

Answer 1:

为了解决这个问题,我强迫动画,在主线程中运行。 你有你的UI元素的喜欢你的动画或更新标签文本性能问题时,都会尝试强制运行在主线程的UI变化。

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

我也面临着一个计时器更新标签这个问题,但在这个问题上我认为这是某种形式的CGAffineTransform的问题。



文章来源: Swift Animate duration not working in CGAffineTransform