我試圖爲視圖的背景顏色設置動畫。在animationDidStop
委託方法中,我嘗試使用CABasicAnimation
對象的toValue
屬性設置最終背景色。該代碼似乎在編輯器中是正確的,但是當我編譯項目時,鏈接程序找不到CGColor
類。代碼工作,如果我使用一個const UIColor
)省略UIColor(CGColor: animation.toValue as CGColor!
)的表達(例如
class ViewController: UIViewController {
@IBAction func colorSelected(sender: UIButton)
{
let animation = CABasicAnimation(keyPath: "backgroundColor")
animation.toValue = sender.backgroundColor.CGColor
animation.delegate = self
self.view.layer.addAnimation(animation, forKey: "fadeAnimation")
}
@objc override func animationDidStop(anim: CAAnimation!, finished flag: Bool) {
let animation = anim as CABasicAnimation
self.view.backgroundColor = UIColor(CGColor: animation.toValue as CGColor!)
}
}
UPDATE:在Xcode 6的β3的代碼編譯,但一個例外是在方法swift_dynamicCastUnknownClassUnconditional
提出其中toValue
屬性是鑄造到CGColor
。
這種奇怪的行爲似乎與某些Xcode問題有關。
改寫爲 '讓顏色:CGColorRef = animation.toValue作爲CGColorRef' 'self.view.backgroundColor =的UIColor(CGColor:顏色)' 我得到了同樣的連接錯誤 – mxb
不應該是'self.view.backgroundColor = UIColor(CGColorRef:color)'?? –
'UIColor(CGColorRef:color)'不能編譯... – mxb