{ "id": "136221", "key": "TIMOB-17961", "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": "11258", "description": "Holding Pen for Triaged Issues", "name": "Backlog", "archived": false, "released": false } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-07-11T08:09:44.000+0000", "created": "2014-09-08T16:36:54.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "TCSupport" ], "versions": [ { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" }, { "id": "15972", "description": "Release 3.4.0", "name": "Release 3.4.0", "archived": false, "released": true, "releaseDate": "2014-09-28" } ], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2016-07-11T08:09:51.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": "To see this issue, run this code:\r\n\r\n{code}\r\n\r\nvar win = Ti.UI.createWindow({\r\n\ttop: 20\r\n});\r\n\r\nfunction formatDate()\r\n{\r\n\tvar date = new Date();\r\n\tvar datestr = date.getMonth()+'/'+date.getDate()+'/'+date.getFullYear();\r\n\tif (date.getHours()>=12)\r\n\t{\r\n\t\tdatestr+=' '+(date.getHours()==12 ? date.getHours() : date.getHours()-12)+':'+date.getMinutes()+' PM';\r\n\t}\r\n\telse\r\n\t{\r\n\t\tdatestr+=' '+date.getHours()+':'+date.getMinutes()+' AM';\r\n\t}\r\n\treturn datestr;\r\n}\r\n\r\nvar section1 = Ti.UI.createTableViewSection({\r\n\theaderTitle:'Header 1'\r\n});\r\nfor (var i=0; i < 10; i++) {\r\n\tsection1.add(Ti.UI.createTableViewRow({\r\n\t\ttitle:'Row '+i\r\n\t}));\r\n}\r\n\r\nvar section2 = Ti.UI.createTableViewSection({\r\n\theaderTitle:'Header 2'\r\n});\r\nfor (var i=4; i < 10; i++) {\r\n\tsection2.add(Ti.UI.createTableViewRow({\r\n\t\ttitle:'Row '+i\r\n\t}));\r\n}\r\n\r\nvar lastRow = 4;\r\n\r\nvar tableView = Ti.UI.createTableView({\r\n\tdata: [ section1, section2 ]\r\n});\r\n\r\nwin.add(tableView);\r\n\r\nvar border = Ti.UI.createView({\r\n\tbackgroundColor:\"#576c89\",\r\n\theight:2,\r\n\tbottom:0\r\n});\r\n\r\nvar tableHeader = Ti.UI.createView({\r\n\tbackgroundColor:\"#e2e7ed\",\r\n\twidth:320,\r\n\theight:60\r\n});\r\n\r\n// fake it til ya make it.. create a 2 pixel\r\n// bottom border\r\ntableHeader.add(border);\r\n\r\nvar arrow = Ti.UI.createView({\r\n\tbackgroundImage:\"/images/whiteArrow.png\",\r\n\twidth:23,\r\n\theight:60,\r\n\tbottom:10,\r\n\tleft:20\r\n});\r\n\r\nvar statusLabel = Ti.UI.createLabel({\r\n\ttext:\"Pull to reload\",\r\n\tleft:55,\r\n\twidth:200,\r\n\tbottom:30,\r\n\theight:\"auto\",\r\n\tcolor:\"#576c89\",\r\n\ttextAlign:\"center\",\r\n\tfont:{fontSize:13,fontWeight:\"bold\"},\r\n\tshadowColor:\"#999\",\r\n\tshadowOffset:{x:0,y:1}\r\n});\r\n\r\nvar lastUpdatedLabel = Ti.UI.createLabel({\r\n\ttext:\"Last Updated: \"+formatDate(),\r\n\tleft:55,\r\n\twidth:200,\r\n\tbottom:15,\r\n\theight:\"auto\",\r\n\tcolor:\"#576c89\",\r\n\ttextAlign:\"center\",\r\n\tfont:{fontSize:12},\r\n\tshadowColor:\"#999\",\r\n\tshadowOffset:{x:0,y:1}\r\n});\r\n\r\nvar actInd = Titanium.UI.createActivityIndicator({\r\n\tleft:20,\r\n\tbottom:13,\r\n\twidth:30,\r\n\theight:30\r\n});\r\n\r\ntableHeader.add(arrow);\r\ntableHeader.add(statusLabel);\r\ntableHeader.add(lastUpdatedLabel);\r\ntableHeader.add(actInd);\r\n\r\ntableView.headerPullView = tableHeader;\r\n\r\n\r\nvar pulling = false;\r\nvar reloading = false;\r\n\r\nfunction beginReloading()\r\n{\r\n\t// just mock out the reload\r\n\tsetTimeout(endReloading,2000);\r\n}\r\n\r\nfunction endReloading()\r\n{\r\n\t// simulate loading\r\n\tfor (var c=lastRow;c -65.0 && offset < 0) && !reloading )\r\n\t{\r\n\t\tpulling = false;\r\n\t\tvar t = Ti.UI.create2DMatrix();\r\n\t\tarrow.animate({transform:t,duration:180});\r\n\t\tstatusLabel.text = \"Pull down to refresh...\";\r\n\t}\r\n});\r\n\r\nvar event1 = 'dragEnd';\r\nif (Ti.version >= '3.0.0') {\r\n\tevent1 = 'dragend';\r\n}\r\n\r\ntableView.addEventListener(event1,function(e)\r\n{\r\n\tif (pulling && !reloading)\r\n\t{\r\n\t\treloading = true;\r\n\t\tpulling = false;\r\n\t\tarrow.hide();\r\n\t\tactInd.show();\r\n\t\tstatusLabel.text = \"Reloading...\";\r\n\t\ttableView.setContentInsets({top:60},{animated:true});\r\n\t\tarrow.transform=Ti.UI.create2DMatrix();\r\n\t\tbeginReloading();\r\n\t}\r\n});\r\n\r\nwin.open();\r\n{code}\r\n\r\n\r\nPull down table view so loading starts. Then, try to scroll table view. You should see that rows are scrolling, but first section view stays fixed (other seems fine).", "attachment": [], "flagged": false, "summary": "TableView - first section doesn't scroll when doing pull to refresh", "creator": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "* Ti SDK 3.3.0.GA\r\n* iOS 7.1\r\n* Xcode 5.1.1\r\n* TiCLI 3.3.0", "closedSprints": [ { "id": 678, "state": "closed", "name": "2016 Sprint 14 SDK", "startDate": "2016-07-02T00:25:57.921Z", "endDate": "2016-07-16T00:25:00.000Z", "completeDate": "2016-07-18T03:18:29.729Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "322471", "author": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "updateAuthor": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "created": "2014-09-09T06:07:53.000+0000", "updated": "2014-09-09T06:07:53.000+0000" }, { "id": "322498", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Hello Mauro.\r\n\r\n\r\nI don't think this is duplicate, one issue is made for TableView component and other for ListView component (although, in both cases, issue is identical). I think they'll be resolved differently and because of that I opened two tickets.\r\n\r\n\r\n\r\nIvan", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-09-09T09:19:02.000+0000", "updated": "2014-09-09T09:19:02.000+0000" }, { "id": "323280", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Do I have to open another issue, or this one will be reopened??!!!", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-09-12T14:52:06.000+0000", "updated": "2014-09-12T14:52:06.000+0000" }, { "id": "323370", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Thank you!", "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-09-12T18:21:46.000+0000", "updated": "2014-09-12T18:21:46.000+0000" }, { "id": "330806", "author": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "updateAuthor": { "name": "ivan.skugor", "key": "ivan.skugor", "displayName": "Ivan Skugor", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2014-11-05T10:32:24.000+0000", "updated": "2014-11-05T10:32:24.000+0000" }, { "id": "390269", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Fixed using the native Pull-To-Refresh in all recent version of Titanium.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-11T08:09:45.000+0000", "updated": "2016-07-11T08:09:45.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }