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

标签 ios swift uitableview animation

我有一个包含可扩展单元格的表格 View 。当您单击单元格时,日期选择器会显示为内联。当您单击另一个时,会显示不同类型的选择器。我已经设置好了,当你点击任何一个单元格时,所有打开的单元格都会关闭,以确保一次只有一个单元格打开。

我的问题是:a)第一个单元格关闭和 b)第二个单元格打开的动画重叠,看起来一点也不好看。

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

我在网上寻找 Swift 解决方案,但一直找不到答案。我对 iOS 开发相当陌生,所以对 UIAnimation 等不太了解。

使用 Xcode 7.2、Swift。

如有任何帮助,我们将不胜感激。

最佳答案

您可以尝试使用补全功能。

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)
})

或者

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

或者

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

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

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

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

关于ios - 如何防止两个tableview单元格动画同时发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687566/

相关文章:

ios - UITableView 无法到达新行

ios - 检测 ABPersonCreatePeopleInSourceWithVCardRepresentation() 中的错误

ios - 通过 navigationController 使用 segue 传递数据

ios - 如何通过 NSUserDefault 字典的键使用 For 循环

ios - '>' 的 Swift String 重载行为

ios - 在 Parse 中按降序显示最后 30 条记录

ios - 像表格一样显示具有动态大小的标签,但不重叠

ios - CGImage 到 UIImage 不起作用

ios - 为什么 UIView.animate(withDuration 没有效果?

ios - UIImagePickerControllerDelegate 到 Swift?