这里我有一些代码来显示带标签的UIView作为通知。
self.not1cons.constant = 0
self.notificationLbl1.text = self.notification1
UIView.animate(withDuration: 2.5, delay: 0.3, options: .allowAnimatedContent, animations: {
self.view.layoutIfNeeded()
}, completion: { finsihed in
self.not1cons.constant = -100
UIView.animate(withDuration: 2.5, delay: 2.0, options: .allowAnimatedContent, animations: {
self.view.layoutIfNeeded()
}, completion: { finshed in
})
})
它从屏幕外开始并下降到视图中。它会停留几秒钟并返回到屏幕外的原始位置。我需要一些代码来使这些链式动画立即发生。这可能吗?
答案 0 :(得分:0)
你可以通过操纵系统在幕后生成的CAAnimations来实现这一点,但这是相当棘手的业务,并不是一个好主意,因为它依赖于当前实现的未记录的细节,这是有风险的。
相反,我建议您重新设计动画以使用新到iOS 10 UIViewPropertyAnimator,支持暂停和恢复动画,以及在任意点前后擦洗它们。
我在Gitub上有一个名为UIViewPropertyAnimator-test的演示项目,它允许您使用滑块来回擦洗动画。它比你的需要更复杂,但它应该给你这个想法。