iOS 13 替代 'setAnimationCurve'
iOS 13 Alternative to 'setAnimationCurve'
with iOS 13 Apple 弃用 我在我的应用程序中使用的很多功能。对于它们中的大多数,在 Whosebug 上已经有很好解释的替代方案 - 但对于 'setAnimationCurve' 没有。
'setAnimationCurve' was deprecated in iOS 13.0: Use the block-based
animation API instead
这是我的确切代码:
// MARK: - Keyboard up/down adjustment for the addMediaBar
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
let userInfo = notification.userInfo! as [AnyHashable: Any]
let animationDuration = userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber
let animationCurve = userInfo[UIResponder.keyboardAnimationCurveUserInfoKey] as! NSNumber
if addMediaBarBottomAnchor.constant == 0 {
let window = UIApplication.shared.windows.filter {[=12=].isKeyWindow}.first
if let bottomPadding = window?.safeAreaInsets.bottom {
print(keyboardSize.height)
print(bottomPadding)
UIView.setAnimationCurve(UIView.AnimationCurve(rawValue: animationCurve.intValue)!)
UIView.animate(withDuration: animationDuration.doubleValue) {
self.addMediaBarBottomAnchor.constant = -keyboardSize.height + bottomPadding
self.view.layoutIfNeeded()
}
} else {
UIView.setAnimationCurve(UIView.AnimationCurve(rawValue: animationCurve.intValue)!)
UIView.animate(withDuration: animationDuration.doubleValue) {
self.addMediaBarBottomAnchor.constant = -keyboardSize.height
self.view.layoutIfNeeded()
}
}
}
}
}
我正在使用此代码在屏幕底部 滑动 up/down 一个栏 ,每当 键盘出现时 .
如果能就此主题提供任何帮助,我将不胜感激。
如果你想要一个内置的动画曲线,调用
animate(withDuration:delay:options:animations:completion:)
options:
允许您包含动画曲线。
但更好的选择是完全不使用 UIView class 动画调用。使用 UIViewPropertyAnimator。现在您可以应用任何您喜欢的动画曲线了。
with iOS 13 Apple 弃用 我在我的应用程序中使用的很多功能。对于它们中的大多数,在 Whosebug 上已经有很好解释的替代方案 - 但对于 'setAnimationCurve' 没有。
'setAnimationCurve' was deprecated in iOS 13.0: Use the block-based animation API instead
这是我的确切代码:
// MARK: - Keyboard up/down adjustment for the addMediaBar
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
let userInfo = notification.userInfo! as [AnyHashable: Any]
let animationDuration = userInfo[UIResponder.keyboardAnimationDurationUserInfoKey] as! NSNumber
let animationCurve = userInfo[UIResponder.keyboardAnimationCurveUserInfoKey] as! NSNumber
if addMediaBarBottomAnchor.constant == 0 {
let window = UIApplication.shared.windows.filter {[=12=].isKeyWindow}.first
if let bottomPadding = window?.safeAreaInsets.bottom {
print(keyboardSize.height)
print(bottomPadding)
UIView.setAnimationCurve(UIView.AnimationCurve(rawValue: animationCurve.intValue)!)
UIView.animate(withDuration: animationDuration.doubleValue) {
self.addMediaBarBottomAnchor.constant = -keyboardSize.height + bottomPadding
self.view.layoutIfNeeded()
}
} else {
UIView.setAnimationCurve(UIView.AnimationCurve(rawValue: animationCurve.intValue)!)
UIView.animate(withDuration: animationDuration.doubleValue) {
self.addMediaBarBottomAnchor.constant = -keyboardSize.height
self.view.layoutIfNeeded()
}
}
}
}
}
我正在使用此代码在屏幕底部 滑动 up/down 一个栏 ,每当 键盘出现时 .
如果能就此主题提供任何帮助,我将不胜感激。
如果你想要一个内置的动画曲线,调用
animate(withDuration:delay:options:animations:completion:)
options:
允许您包含动画曲线。
但更好的选择是完全不使用 UIView class 动画调用。使用 UIViewPropertyAnimator。现在您可以应用任何您喜欢的动画曲线了。