Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-26586

iOS: Animation curve ease-in/ease-out does not auto-reverse correctly

    Details

    • Story Points:
      3

      Description

      Summary:
      A view animation with "autoreverse" set to true and a "repeat" of 0 (the default) will not correctly reverse the animation when using "curve" Ti.UI.ANIMATION_CURVE_EASE_IN or Ti.UI.ANIMATION_CURVE_EASE_OUT. The animation incorrectly uses the same curve when performing the reverse animation.

      If "repeat" is set to 1 or higher, this issue will only happen on the final/last repeated reverse animation. This issue won't happen on prior repeated animations.

      Expected Behavior:
      When the curve is set to Ti.UI.ANIMATION_CURVE_EASE_IN, then the reverse animation curve is supposed to be Ti.UI.ANIMATION_CURVE_EASE_OUT.

      When the curve is set to Ti.UI.ANIMATION_CURVE_EASE_OUT, then the reverse animation curve is supposed to be Ti.UI.ANIMATION_CURVE_EASE_IN.

      The above is how it works in HTML5 "reverse" animation. See...
      https://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction#Syntax

      Cause:
      Titanium's iOS code generates its own reverse animation to work-around an Apple bug. The issue is that the reverse animation uses the same "curve" as the forward animation. This is where the reverse curve should be applied instead.
      https://github.com/appcelerator/titanium_mobile/blob/master/iphone/TitaniumKit/TitaniumKit/Sources/API/TiAnimation.m#L412

        Attachments

          Activity

            People

            • Assignee:
              jquick Joshua Quick
              Reporter:
              jquick Joshua Quick
              Reviewer:
              Vijay Singh
              Tester:
              Samir Mohammed
            • Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Titanium SDK/CLI <> Titanium Mobile
                  Synced with:
                  TIMOB-6722
                  Sync status:
                  ERROR
                  Last received:
                  Last sent:

                  Git Source Code