{ "id": "169954", "key": "TIMOB-25368", "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": "8", "description": "", "name": "Needs more info" }, "resolutiondate": "2017-10-11T13:04:50.000+0000", "created": "2017-10-03T21:00:17.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "iphone" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-10-11T13:04:51.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": "Trying to execute an infinite scroll so when the user scrolls to a certain point the feed will append more rows but when appendrow is called the tableview tries to scroll back to the top of the table which is leading to an annoying situation. This has worked fine up until recently. Thank you in advance", "attachment": [], "flagged": false, "summary": "iOS: Appending view to scroll-view while scrolling, scrolls back to the top of the scroll-view", "creator": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "any iPhone on iOS 11", "closedSprints": [ { "id": 959, "state": "closed", "name": "2017 Sprint 21 SDK", "startDate": "2017-10-08T20:38:15.130Z", "endDate": "2017-10-22T20:38:00.000Z", "completeDate": "2017-10-24T23:55:56.605Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "428691", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey there, can you provide a simple example code to reproduce this issue? Thank you!", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-04T08:17:26.000+0000", "updated": "2017-10-04T08:17:26.000+0000" }, { "id": "428698", "author": { "name": "peterladis", "key": "peterladis", "displayName": "Peter Ladis", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hans...im on the same team....So what we have is a table that implements infinite scroll....this is achieved by this:\r\n\r\n\r\n\r\nif (distance < ScrollView.lastDistance)\r\n\t\t\t{\r\n\t\t\t\t// adjust the % of rows scrolled before we decide to start fetching\r\n\t\t\t\tvar percentage = .60;\r\n\t\t\t\t\r\n\t\t\t\tif (args.percentage) \r\n\t\t\t\t\tpercentage = args.percentage;\r\n\t\t\t\t\r\n\t\t\t\tvar nearEnd = theEnd * percentage;\r\n\t\t\t\t\r\n\t\t\t\tvar newBottom = theEnd;\r\n\t\t\t\t\r\n\t\t\t\tif (ScrollView.loading == false && total >= nearEnd)\r\n\t\t\t\t{\r\n\t\t\t\t\tnearBottom = true;\r\n\t\t\t\t\tif(nearBottom){\r\n\t\t\t \t\tScrollView.loading = true;\r\n\t\t\t \t\tScrollView.fireEvent('InfiniteScrolling');\r\n\t\t\t \t}\r\n\t \t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (total >= newBottom)\r\n\t\t\t\t{\r\n\t\t\t\t\tScrollView.fireEvent('BottomList');\r\n\t\t\t\t}\t\r\n\t\t\t}\r\n\r\n\r\nWhen the above code is met....it tells the parent code to load more items from the database. This happens successfully. When the new values are received from the database we call appendRow(). After all the values are loaded in....we tell the control that we are done loading....\r\n\r\n****what appears to happen is...appendrow() is actually moving the table all around causing the height check to fire multiple time..giving the illusion that the table is bouncing all over the place. Another side note is after we appendrow() causes the scrollToview(0)...not to working anymore like it did in IOS10.....i solved this by changing it to scrolltoindex(0)\r\n\r\n\r\nThoughts? ", "updateAuthor": { "name": "peterladis", "key": "peterladis", "displayName": "Peter Ladis", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-04T12:35:48.000+0000", "updated": "2017-10-04T12:35:48.000+0000" }, { "id": "428703", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Peter, sorry but your example-code seems incomplete to create an infinite-scroll use-case. Also, please test with the latest 6.3.0 build (e.g. by using {{appc ti sdk install -b 6_3_X}} or download [here|http://builds.appcelerator.com/#6_3_X] where already many iOS 11 changes are included. For the scrollToView bug, it is a known iOS 11 issue and I filed a ticket at Apple about it already. ", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-04T15:01:45.000+0000", "updated": "2017-10-04T15:01:45.000+0000" }, { "id": "428708", "author": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey Hans,\r\n\r\nI installed the build using appc ti sdk install -b 6_3_X but when i try to run it against our app i get this error, which isnt allowing for compilation of the app.\r\nSyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode", "updateAuthor": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-04T17:38:44.000+0000", "updated": "2017-10-04T17:38:44.000+0000" }, { "id": "428739", "author": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey Hans,\r\n\r\nJust wanted to see where everything stands for this issue?", "updateAuthor": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-05T13:49:20.000+0000", "updated": "2017-10-05T13:49:20.000+0000" }, { "id": "428740", "author": { "name": "peterladis", "key": "peterladis", "displayName": "Peter Ladis", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Here is my full stack trace:\r\n\r\n2017-10-05T14:27:26.261Z | TRACE | session already loaded in opts.session\r\n2017-10-05T14:27:26.263Z | DEBUG | Titanium Downloads Last Checked: 1507204534979\r\n2017-10-05T14:27:27.157Z | ERROR | An uncaught exception was thrown!\r\nBlock-scoped declarations (let, const, function, class) not yet supported outside strict mode\r\n2017-10-05T14:27:27.157Z | ERROR | Block-scoped declarations (let, const, function, class) not yet supported outside strict mode\r\n2017-10-05T14:27:27.157Z | TRACE | SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode\r\n at exports.runInThisContext (vm.js:53:16)\r\n at Module._compile (module.js:373:25)\r\n at Object.Module._extensions..js (module.js:416:10)\r\n at Module.load (module.js:343:32)\r\n at Function.Module._load (module.js:300:12)\r\n at Module.require (module.js:353:17)\r\n at require (internal/module.js:12:17)\r\n at /Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/lib/titanium.js:97:14\r\n at /Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/node_modules/async/dist/async.js:3853:24\r\n at eachOfArrayLike (/Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/node_modules/async/dist/async.js:1003:9)\r\n at eachOf (/Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/node_modules/async/dist/async.js:1051:5)\r\n at _parallel (/Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/node_modules/async/dist/async.js:3852:5)\r\n at Object.parallelLimit [as parallel] (/Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/node_modules/async/dist/async.js:3935:5)\r\n at Object.exports.platformOptions (/Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/node_modules/node-titanium-sdk/lib/titanium.js:81:8)\r\n at /Users/pladis/Library/Application Support/Titanium/mobilesdk/osx/6.3.0.v20171004141749/cli/commands/build.js:49:7\r\n at /Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/lib/hook.js:256:13\r\n---------------------------------------------\r\n at Object.run (/Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/node_modules/node-appc/lib/subprocess.js:59:8)\r\n at find (/Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/node_modules/node-appc/lib/subprocess.js:96:14)\r\n at /Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/node_modules/node-appc/node_modules/async/dist/async.js:3894:5\r\n at q.process (/Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/node_modules/node-appc/node_modules/async/dist/async.js:2299:17)\r\n at Immediate._onImmediate (/Users/pladis/.appcelerator/install/6.2.4/package/node_modules/titanium/node_modules/node-appc/node_modules/async/dist/async.js:2112:16)\r\n at processImmediate [as _immediateCallback] (timers.js:396:17)", "updateAuthor": { "name": "peterladis", "key": "peterladis", "displayName": "Peter Ladis", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-05T14:28:46.000+0000", "updated": "2017-10-05T14:28:46.000+0000" }, { "id": "428800", "author": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hey Hans,\r\n\r\nWondering if there is any update you could give me on this issue or a possible work around for the time being, it's leading to a pretty bad user experience and we would like to get something working correctly as soon as possible.", "updateAuthor": { "name": "alec@lilypad.co", "key": "alec@lilypad.co", "displayName": "alec@lilypad.co", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-06T22:07:05.000+0000", "updated": "2017-10-06T22:07:05.000+0000" }, { "id": "428888", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Unfortunately there is still no full test-case to reproduce, just part of a snippet that does not have any context. If we cannot receive a test-case to actually reproduce it, we won't be able to address this and probably need to move it out of the next release.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-10T08:30:53.000+0000", "updated": "2017-10-10T08:30:53.000+0000" }, { "id": "428940", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I have one thing that *could* cause it: Try to edit the {{TiUIScrollView.m}} in \r\n\r\n{{~/Library/Application Support/Titanium/mobilesdk/osx//iphone/Classes}} \r\n\r\nto include the following inside the {{-(TiUIScrollViewImpl *)scrollView}} method - before {{\\[self addSubview:scrollView\\];}}:\r\n\r\n{code:objc}\r\n#if IS_XCODE_9\r\n if ([TiUtils isIOSVersionOrGreater:@\"11.0\"]) {\r\n [scrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];\r\n }\r\n#endif\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-11T12:33:54.000+0000", "updated": "2017-10-11T12:36:36.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }