我有一个具有可扩展单元格的tableview。单击单元格时,日期选择器显示为内联。当您点击另一个时,会显示另一种选择器。我已将其设置为当您单击任何单元格时,任何打开的单元格都将关闭,以确保一次只打开一个单元格。
我的问题是:a)第一个单元格关闭的动画,以及b)第二个单元格开口是重叠的,这看起来并不好看。
当我单击一个单元格时,我希望展开的单元格关闭,然后第二个单元格要扩展,并且有足够的延迟,因此动画不会重叠。
我在网上找了一个Swift解决方案,但还没有找到答案。我是iOS开发人员的新手,所以对UIAnimation等不太了解。
使用Xcode 7.2,Swift。
任何帮助都将不胜感激。
答案 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
}
可能还有其他一些解决方案, 祝你好运