使用NSNotification.userInfo中的NSNumber [UIKeyboardAnimationCurveUserInfoKey]
在Objective C中,我将执行以下操作
- [UIView animateWithDuration:1.0
- delay:0
- options:(curveValue.intValue << 16)
即使bitshift运算符相同,Swift也不允许我这样做.我想获得相当于枚举的原始值
UIViewAnimationOptionCurveEaseInOut = 0<< 16,UIViewAnimationOptionCurveEaseIn = 1<< 16,UIViewAnimationOptionCurveEaSEOut = 2<< 16,UIViewAnimationOptionCurveLinear = 3<< 16,更新 我不确定以下方法是否正确,似乎有效
- var animationCurve : UIViewAnimationOptions = UIViewAnimationOptions.CurveEaSEOut
- info[UIKeyboardAnimationCurveUserInfoKey].getValue(&animationCurve)
- UIView.animateWithDuration(durationValue.doubleValue,delay: 0,options: animationCurve,animations: {self.navigationController.toolbar.frame = myRect},completion: nil)
解决方法
在Beta-5中
- UIViewAnimationOptions.fromRaw(
- UInt(
- ( p.userInfo[ UIKeyboardAnimationCurveUserInfoKey ] as NSNumber ).unsignedIntValue << 16
- )
- )!