{ "id": "172651", "key": "TIMOB-26586", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-11-29T14:38:53.000+0000", "created": "2018-11-21T02:11:03.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "animation", "ios", "repeat", "reverse" ], "versions": [], "issuelinks": [], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-11-30T12:24:47.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "*Summary:*\r\nA 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.\r\n\r\nIf \"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.\r\n\r\n*Expected Behavior:*\r\nWhen 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}}.\r\n\r\nWhen 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}}.\r\n\r\nThe above is how it works in HTML5 \"reverse\" animation. See...\r\nhttps://developer.mozilla.org/en-US/docs/Web/CSS/animation-direction#Syntax\r\n\r\n*Cause:*\r\nTitanium'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.\r\nhttps://github.com/appcelerator/titanium_mobile/blob/master/iphone/TitaniumKit/TitaniumKit/Sources/API/TiAnimation.m#L412\r\n", "attachment": [ { "id": "65883", "filename": "AnimationCurveTest.js", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-11-21T02:11:32.000+0000", "size": 1800, "mimeType": "application/x-javascript" } ], "flagged": false, "summary": "iOS: Animation curve ease-in/ease-out does not auto-reverse correctly", "creator": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "443831", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/10486", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-11-22T05:39:20.000+0000", "updated": "2018-11-22T05:39:20.000+0000" }, { "id": "444094", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "*Closing ticket.* Fix verified in SDK Version {{8.0.0.v20181129161342}}.\r\n\r\nTest and other information can be found at: \r\nhttps://github.com/appcelerator/titanium_mobile/pull/10486", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-11-30T12:23:45.000+0000", "updated": "2018-11-30T12:23:45.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }