swift 动画转场要在主线程

Posted iaoc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 动画转场要在主线程相关的知识,希望对你有一定的参考价值。

        let animation = UIViewAnimation()
            animation.animate(view: self.background, fn: {
               DispatchQueue.main.async {
                    self.setCoverImage(coverUrl: coverUrl)
                }

                 print("转场1")
            }) {
                print("转场完成")
                DispatchQueue.global().async {
                    self.reload(url: url, coverUrl: coverUrl, callFn: callFn)
                }
                
           }

 上面方式死活不回调成功函数。换用下面方式则成功

   DispatchQueue.main.async {
            let animation = UIViewAnimation()
            animation.animate(view: self.background, fn: {
                self.setCoverImage(coverUrl: coverUrl)
                
                 print("转场1")
            }) {
                print("转场完成")
                DispatchQueue.global().async {
                    self.reload(url: url, coverUrl: coverUrl, callFn: callFn)
                }
                
            }
        }

 

以上是关于swift 动画转场要在主线程的主要内容,如果未能解决你的问题,请参考以下文章

自定义转场动画--Swift3.0版本

iOS涂色涂鸦效果Swift仿喜马拉雅FM抽屉转场动画拖拽头像标签选择器等源码

iOS 开发--转场动画

swift 在主线程上运行代码

swift延迟后如何更新UI

Swift/iOS 子视图在主线程上未立即显示