使用Swift 3.0运行tvOS
基本应用程序,这是视图控制器中的代码...我希望在它消失后删除let searchTerm = 'somevalue';
return this.af.database.list('items', {
query: {
orderByChild: 'property',
equalTo: searchTerm
}
});
。动画效果很好,但完成方法CAShapeLayer
永远不会被调用?
想要使用animationDidStop
方法,但它不会编译。给我错误"方法不会覆盖其超类的任何方法"这肯定是错误的,override func animationDidStop
是animationDidStop
类的成员。
这段代码有什么问题?我可以用计时器或其他东西来解决这个问题,但这只是一种软糖。
CAAnimation
答案 0 :(得分:4)
您正在设置形状图层的代理:
self.shapeLayer.delegate = self
但如果您想要调用animationDidStop
,则必须设置动画的delegate
,而不是图层:
fadeInAndOut.delegate = self
你说:
想要使用
override func animationDidStop
方法,但不会编译。给我错误“方法不会覆盖其超类中的任何方法”,这肯定是错误的,animationDidStop
是CAAnimation
类的成员。
您正在视图控制器中实现此功能,而UIViewController
未提供animationDidStop
的基类实现,因此无需覆盖。
animationDidStop
是由CAAnimationDelegate
协议定义的方法,因此(a)视图控制器应声明其与该协议的一致性; (b)不要使用override
关键字。