iOS 13 Альтернатива «setAnimationCurve» - PullRequest
0 голосов
/ 25 октября 2019

с iOS 13 Apple устарела много функций, которые я использовал в своем приложении. Для большинства из них уже есть альтернативы, хорошо объясненные в StackOverflow - но не для ' setAnimationCurve '.

'setAnimationCurve' устарело в iOS 13.0: Вместо этого используйте API анимации на основе блоков

Это мой точный код:

  // 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 {$0.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()

                }

            }



        }

    }

}

Я использую этот код для сдвигайте вверх / вниз полосу в нижней части экрана, когда на клавиатуре появляется .

Я был бы очень признателен за любую помощь по этой теме.

1 Ответ

1 голос
/ 25 октября 2019

Если вам нужна встроенная анимационная кривая, позвоните

animate(withDuration:delay:options:animations:completion:)

. options: позволяет вам включить анимационную кривую.

Но еще лучше не использовать UIViewКласс анимации звонков вообще. Используйте UIViewPropertyAnimator. Теперь вы можете применить любую кривую анимации, какую захотите.

...