Seb*_*che 10 enums uiviewanimation uiviewanimation-curve swift
UIKeyboardAnimationCurveUserInfoKeya的userInfo字典中的键UIKeyboardWillShowNotification包含Int值7.
现在我需要将其传递Int给UIView.setAnimationCurve(<here>).我尝试像这样创建所需的UIViewAnimationCurve枚举UIViewAnimationCurve(rawValue: 7).由于原始值7未记录,因此结果始终如此nil.
它在Objective-C中以这种方式运行良好.知道如何使用Swift将这个动画曲线从通知转换为UIView动画吗?
更新:正如Martin所指出的那样,自Xcode 6.3以来,这不再是一个问题.
现在可以使用init(rawValue :)初始化程序从原始整数值转换导入的具有未记录值的NS_ENUM类型(例如UIViewAnimationCurve),而不会将其重置为nil.可以编写使用unsafeBitCast作为此问题的变通方法的代码来使用原始值初始值设定项.
我想我已经明白了,但我不确定这是不是应该这样做的方式.
let animationCurve = unsafeBitCast(7, UIViewAnimationCurve.self)
UIView.setAnimationCurve(animationCurve)
Run Code Online (Sandbox Code Playgroud)
更新:此问题中包含的解决方案也适用.
var animationCurve = UIViewAnimationCurve.EaseInOut
NSNumber(integer: 7).getValue(&animationCurve)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2377 次 |
| 最近记录: |