如何防止同时发生两个tableview单元格动画

时间:2016-02-28 20:03:12

标签: ios swift uitableview animation

我有一个具有可扩展单元格的tableview。单击单元格时,日期选择器显示为内联。当您点击另一个时,会显示另一种选择器。我已将其设置为当您单击任何单元格时,任何打开的单元格都将关闭,以确保一次只打开一个单元格。

我的问题是:a)第一个单元格关闭的动画,以及b)第二个单元格开口是重叠的,这看起来并不好看。

当我单击一个单元格时,我希望展开的单元格关闭,然后第二个单元格要扩展,并且有足够的延迟,因此动画不会重叠。

我在网上找了一个Swift解决方案,但还没有找到答案。我是iOS开发人员的新手,所以对UIAnimation等不太了解。

使用Xcode 7.2,Swift。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用完成功能。

UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveLinear, animations: { 
    //your first animation
}, completion: {(finished:Bool) in
    //your seconde animation (or whatever you want to be done when the first one is completed)
})

OR

您可以使用CATransaction,请参阅:Wait for Swift animation to complete before executing code

OR

您可以尝试强制它们在同一个线程上运行而不是使用并行线程吗?

例如,以下是如何强制在主线程上执行操作:

dispatch_async(dispatch_get_main_queue()) {
    //your animation
}

可能还有其他一些解决方案, 祝你好运

相关问题