我有一个动画,完成后希望从其superView中删除它。然而,我无法理解Swift的完成处理程序语法。这个动画是在UIView
子类中编写的。
UIView.animateWithDuration(0.5,
delay: 0.0,
options: .CurveEaseInOut,
animations: { self.frame = CGRectMake(0,0, 500, 500)},
completion: /*Magic Code here??*/)
我希望将
self.removeFromSuperView()
作为completion
的参数进行调用,然而在阅读了许多在线文章后,我仍无法实现这一目标。谢谢!
self
的引用(实际上,动画闭包中也应该有一个捕获列表)。 - Stuartself
的引用,如果动画仍在运行系统要释放视图资源可能会受影响。思考一下,这种情况很少见,因为只有在从视图层次结构中移除时才会释放视图资源,我预计在这种情况下将隐式取消动画(调用完成闭包时 finished == false)。 - Stuartunowned
会导致崩溃,因为闭包不会期望self
为nil
。如果有什么问题,应该使用weak
,但你可能是对的,捕获列表完全没有必要。这是我最后一次在与PayPal客户支持通话时编写答案... ;) - Stuart