问题设置Swift 3中的CABasicAnimation委托?

时间:2016-07-28 22:52:15

标签: ios swift xcode cabasicanimation swift3

我收到以下错误

  

无法将“StarButton”类型的值指定为键入   'CAAnimationDelegate?'

在这个CABasicAnimation块的最后一行:

 let fillCircle = CABasicAnimation(keyPath: "opacity")
 fillCircle.toValue = 0
 fillCircle.duration = 0.3
 fillCircle.setValue(notFavoriteKey, forKey: starKey)
 fillCircle.delegate = self // this is where the error is thrown

self是一个自定义的UIButton类。这在Swift的早期版本中不是问题...对解决方案的任何建议?

更新

以下是StarButton类源文件的可下载链接,以供最佳参考:

https://www.dropbox.com/s/gvc2sky05f4p3au/StarButton.swift?dl=0

1 个答案:

答案 0 :(得分:10)

正如上面评论中提到的@Doc,解决方案是替换

class StarButton: UIButton { 

class StarButton: UIButton, CAAnimationDelegate {

似乎不再暗示CAAnimationDelegate协议,必须明确指定。