【发布时间】:2018-07-14 11:41:42
【问题描述】:
我有一个用于view controller 交互式过渡的自定义动画师。还有一个blur effect,根据转换进度设置为nil。效果的动画代码如下:
@objc func blurEffectDissmisal() {
UIView.animate(withDuration: dismissAnimator.durationOfAnimation + 1, animations: {
self.blurEffectView?.effect = nil
}) { (done) in
if (done) {
self.blurEffectView?.removeFromSuperview()
}
}
}
我用notification 调用它,当从第二个view controller 开始转换到第一个时,它会调用它。
但是,我这里有个问题。在动画结束之前调用完成块。当我第一次运行转换时(没有取消它)它工作正常,但在随后的运行中它没有。
我也曾尝试将动画添加到我的动画师中,但也没有成功。
此外,当我取消转换时,完成块在实际动画结束之前被调用(在这种情况下,我理解为什么但不知道如何让它向后移动。也许我应该在完成块?)
如您所见,我已尝试来自 answer 的建议,但没有帮助。
如果您知道如何解决此问题,我将非常感谢您的帮助。
【问题讨论】:
-
澄清一下,代码按预期运行,但将实例设置为 nil 无法动画...
-
我添加了答案,请检查并在操场上尝试,如果它解决了您的问题,请将其标记为最佳答案。如果您有任何问题,请在我的回答下方提问。
标签: ios swift uiviewcontroller uiviewanimation