{ "id": "164821", "key": "TIMOB-24193", "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": [], "resolution": { "id": "6", "description": "", "name": "Hold" }, "resolutiondate": "2017-02-08T00:49:25.000+0000", "created": "2016-12-04T15:44:20.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "animation", "ios", "transform" ], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" }, { "id": "18322", "name": "Release 5.5.1", "archived": false, "released": true, "releaseDate": "2016-09-28" } ], "issuelinks": [], "assignee": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-10T16:46:47.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "If you apply a transform to a view and subsequently animate that view with a compound transform (a translate & scale or a translate and rotate) it starts the animation from the default transform and NOT from the current transform. This works if you just use translates and do not have a compound transform. \r\n\r\nHere is a simple example:\r\n\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: '#fff'\r\n});\r\n\r\nvar view1 = Ti.UI.createView({\r\n transform: Ti.UI.create2DMatrix().translate(100, 200),\r\n width: 50,\r\n height: 50,\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'blue'\r\n});\r\nwin.add(view1);\r\n\r\nvar view2 = Ti.UI.createView({\r\n transform: Ti.UI.create2DMatrix().translate(100, 200),\r\n width: 50,\r\n height: 50,\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'green'\r\n});\r\nwin.add(view2);\r\n\r\nvar btn = Ti.UI.createButton({\r\n title: 'Trigger Animation'\r\n});\r\n\r\nbtn.addEventListener('click', function() {\r\n\tvar rotation = Ti.UI.create2DMatrix().translate(200, 200).rotate(33);\r\n\tview2.animate({ \r\n\t transform: rotation,\r\n\t duration: 5000\r\n\t});\r\n\r\n});\r\n\r\nwin.add(btn);\r\nwin.open();\r\n{code}", "attachment": [ { "id": "61280", "filename": "TestAnimation.zip", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-01-18T11:25:13.000+0000", "size": 61152, "mimeType": "application/zip" } ], "flagged": false, "summary": "iOS: Chained transform is reset on animation", "creator": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "environment": "iOS", "closedSprints": [ { "id": 796, "state": "closed", "name": "2017 Sprint 02 SDK", "startDate": "2017-01-15T00:00:41.845Z", "endDate": "2017-01-29T00:00:00.000Z", "completeDate": "2017-01-30T21:10:44.640Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "403139", "author": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "body": "Chee, any movement on this issue? It's pretty much an App-halter for me. Is someone looking into this and if so when do you think a fix might be included in a release? ", "updateAuthor": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "created": "2016-12-11T17:37:27.000+0000", "updated": "2016-12-11T17:37:27.000+0000" }, { "id": "403869", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Sorry we haven't had a chance to look into this in detail. But just to be clear, is it necessary to have the {{transform}} property in createView? in this example, I'm sure putting left: 100, top: 200 and omitting the transform property, it'll work correctly?", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-12-27T06:40:01.000+0000", "updated": "2016-12-27T06:40:01.000+0000" }, { "id": "403872", "author": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "body": "Chee, that won't work I am afraid. The idea is for a floating window that the user moves around, for that to work you have to animate on the transform otherwise it's very jerky. So at the end of the movement when they close it you need to perform the close transform and that is where the problem is. The problem also occurs then, when you subsequently open the window with the existing transform. But the main issue is when you close the window. I did try to set the left and right and the transform to the default just before the close but you get the window moving all over the place! I spent a LOT of time attempting to find a workaround for this, sadly it's just not something I could find a workable solution to.\r\n\r\nI really hope we can get this wrapped up into a release sooner rather than later; thanks.", "updateAuthor": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "created": "2016-12-27T12:54:59.000+0000", "updated": "2016-12-27T12:54:59.000+0000" }, { "id": "404009", "author": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "body": "Chee, any thoughts on this? It's a bit of a showstopper for me... thanks", "updateAuthor": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "created": "2017-01-03T17:16:36.000+0000", "updated": "2017-01-03T17:16:36.000+0000" }, { "id": "404783", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I have attached a native iOS app in swift with same use case as mentioned in this ticket. Native app and Titanium app have same behavior. So in my view this is not an issue and expected behavior.", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-01-18T11:29:04.000+0000", "updated": "2017-01-18T11:29:04.000+0000" }, { "id": "404788", "author": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "body": "Vijay, okay that is strange... I am not sure how developers achieve some of their UI behaviour. They must be coding around this limitation because it's quite limiting as it stands. So it's not a bug, but it's a limitation. Can we make it a feature request? It's killing me at the moment! ", "updateAuthor": { "name": "imarkovi", "key": "imarkovi", "displayName": "Ivan Markovic", "active": true, "timeZone": "Europe/London" }, "created": "2017-01-18T12:54:44.000+0000", "updated": "2017-01-18T12:54:44.000+0000" }, { "id": "404874", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hello [~imarkovi] \r\nSorry to say, but our general policy is that we avoid trying to develop behavior that doesn't exist on the native platform. This extends as well to parity between the mobile platforms. At one time we would try to implement features across all supported platforms, if they existed or not. As an example, this is why there are tab groups on Android devices. What we have found however is that this approach was very problematic and fragile over time. This caused us to spend much time to maintain these features, and less time fixing issues and implementing new features. For now we can put this on hold if you want, but I would not plan for much, if any movement on it any time soon.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-01-19T17:41:16.000+0000", "updated": "2017-01-20T01:25:40.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }