我想要做的迅速Swift編譯器bug可能嗎?
UIView.animateWithDuration(UINavigationControllerHideShowBarDuration, animations: {() -> Void in
return
})
最簡單的動畫,但我越來越呼叫
任何想法缺少論據參數「延遲」?
我想要做的迅速Swift編譯器bug可能嗎?
UIView.animateWithDuration(UINavigationControllerHideShowBarDuration, animations: {() -> Void in
return
})
最簡單的動畫,但我越來越呼叫
任何想法缺少論據參數「延遲」?
UINavigationControllerHideShowBarDuration
是Float
,但duration:
參數具有類型NSTimeInterval
(這是一個Double
別名)。因此,你必須 明確轉換:
UIView.animateWithDuration(NSTimeInterval(UINavigationControllerHideShowBarDuration), animations: {() -> Void in
return
})
謝謝你先生很好 – sger 2014-10-27 18:31:05
UIView類方法animateWithdDuration:animations:被定義爲:
class func animateWithDuration(_ duration: NSTimeInterval, animations animations:() -> Void)
注意第一個參數的類型爲NSTimeInterval,而UINavigationControllerHideShowBarDuration類型爲CGFloat的恆定:
let UINavigationControllerHideShowBarDuration: CGFloat
檢查documentation for NSTimeInterval表明夫特它是對於雙
typealias NSTimeInterval = Double
一個TypeAlias所以我們必須讓我們的CGFloat的轉換爲雙撥打電話的工作。 我們可以很容易地從一個CGFloat的由Double(UINavigationControllerHideShowBarDuration)
一個雙重這可能是更好的使用NSTimeInterval(UINavigationControllerHideShowBarDuration)
以確保類型簽名代碼的讀者相匹配。
您是否嘗試添加「延遲」參數? – APerson 2014-10-27 18:20:12
是的基本上增加了所有的參數問題是與UINavigationControllerHideShowBarDuration – sger 2014-10-27 18:23:22