{ "id": "62325", "key": "TIMOB-1693", "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": "11225", "name": "Release 1.5.0", "archived": true, "released": true, "releaseDate": "2010-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T01:56:53.000+0000", "created": "2011-04-15T02:59:40.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "defect", "ios", "redraw", "scroll" ], "versions": [], "issuelinks": [], "assignee": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-04-17T01:56:53.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": "{html}

1.use this script (thanks to gero):

\n

var max = 100;
\nvar data = [];

\n

for (var c=0; c<max; c++) {

\n
\nvar row = Ti.UI.createTableViewRow({\n    className: 'feedlist',\n    height: 'auto'\n});\n\nvar textview = Ti.UI.createView({\n    layout: 'vertical',\n    height: 'auto'\n\n});\n\nvar h1 = Ti.UI.createLabel({\n    text: 'Title title title #'+c,\n    height: 'auto'\n});\ntextview.add(h1);\n\nvar cre = Ti.UI.createLabel({\n    text: 'Creator creator creator#'+c,\n    height: 'auto',\n    color: '#ccc'\n});\ntextview.add(cre);\n\nrow.add(textview);\ndata[c] = row;\n
\n

}

\n

var win = Ti.UI.createWindow();
\nvar tableview = Ti.UI.createTableView();
\ntableview.setData(data);
\nwin.add(tableview);
\nwin.open();

\n

2.scroll up and down, note the performance
\n3.look at the bolded text

\n

results:scroll performance is poor, and after some scrolling\nthere are redraw issues on the text.

{html}", "attachment": [ { "id": "18047", "filename": "tiissue_1693_badrender.png", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "size": 167550, "mimeType": "image/png" }, { "id": "18046", "filename": "tiissue_1693_norender.png", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "size": 126248, "mimeType": "image/png" } ], "flagged": false, "summary": "scrolling performance and redraw issues, table row class name scroll", "creator": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "126372", "author": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}
    \n
  1. At least with 1.4.0, I am noticing the same type of performance\nand redraw issues with scrolling of one of my tableviews, which\nuses multiple labels, imageviews, for each row.
  2. \n
{html}", "updateAuthor": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "updated": "2011-04-15T02:59:41.000+0000" }, { "id": "126373", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I'm seeing the same issue... specifically, the initial draw of\nthe table doesn't render anything until I do\nsomething to trigger an event in the the tableView. At that point,\neither some or all of the rows will render but in many cases the\nlog will throw out a ton of \"Orphaned child found during proxy\ntransfer!\" errors and there will be duplicate data transposed or\noverlaid from other tableViewRows. (see attached PNGs)

\n

My only solution thus far has been to give each row a unique\nclassName (if I suppress className all together then it doesn't\nrender at all). But even then it still is only rendering the rows\nafter the table receives an initial event (click, drag, etc.).

\n

Is there an interim fix for this? I have a demo on friday and\nthe app I'm working on relies largely on presenting data in custom\ntableViewRow layouts.

\n

Thanks!

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "updated": "2011-04-15T02:59:41.000+0000" }, { "id": "126374", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

FYI, I'm currently on TiDev 1.2.1, TiSDK 1.4.0, and iOS SDK\n4.0.1

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "updated": "2011-04-15T02:59:41.000+0000" }, { "id": "126375", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Well, for the time being I'm able to get the initial render to\noccur by doing this:

\n

this.contactListTable.scrollToTop(1, {

\n
\nanimated: true,\nposition:Ti.UI.iPhone.TableViewScrollPosition.TOP\n
\n

});

\n

Immediately after the initializer that builds the view is\ncalled. It's not pretty, but it'll get the job done for now.

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:41.000+0000", "updated": "2011-04-15T02:59:41.000+0000" }, { "id": "126376", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Jean-Etienne, these issues you describe may be fixed in\nmaster/HEAD. They were known issues in 1.4.0 and the bug which\ndescribed similar behavior has been closed. See bug #1250.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:42.000+0000", "updated": "2011-04-15T02:59:42.000+0000" }, { "id": "126377", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Stephen, thanks for the pointer! totally missed the #1250\nbug...

\n

Generally is it safest to work off of master/HEAD or from the\nlatest official release?

\n

And how do I install from master/HEAD? Pull down that revision\nfrom github and then put it in my /Library/Application\nSupport/Titanium/mobilesdk/osx/ directory?

\n

Or if there are instructions elsewhere and I'm being daft, just\npoint me to the right URL.

\n

Thanks!

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:42.000+0000", "updated": "2011-04-15T02:59:42.000+0000" }, { "id": "126378", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

It is usually best to work off of the last stable release.

\n

You can go to http://github.com/appcelerator/titanium_mobile\nand download the source there. Then run scons, copy the development\nlibrary from the dist directory, and unzip it in\n/Library/Application Support/Titanium.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:42.000+0000", "updated": "2011-04-15T02:59:42.000+0000" }, { "id": "126379", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Nevermind... took me a bit, but I found the nightly build\nserver... why isn't that published somewhere more accessible?

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:42.000+0000", "updated": "2011-04-15T02:59:42.000+0000" }, { "id": "126380", "author": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I tried the newest nightly and didn't see this problem anymore\n(maybe I missed it though -- Thomas/Jean, you may want to confirm).\nHowever, I have developed a test case for a related rendering\nproblem involving the Navbar: Ticket \n1726

{html}", "updateAuthor": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:42.000+0000", "updated": "2011-04-15T02:59:42.000+0000" }, { "id": "126381", "author": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

@Robby: Using the nightly build from the Sept 1, I'm not longer\nseeing this issue and was able to remove the 1pixel scroll hack I\nhad to use to get the table to initially display.

\n

@Steve: Thanks, yeah, I figured out the install process... I'm\ngoing to keep working off of the Sept 1 nightly since it does fix a\nnumber of issues I was experiencing from 1.4.0

{html}", "updateAuthor": { "name": "jean-etiennelavallee", "key": "jean-etiennelavallee", "displayName": "Jean-Etienne LaVallee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:43.000+0000", "updated": "2011-04-15T02:59:43.000+0000" }, { "id": "126382", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Revisiting this issue because of recent tableview performance\nproblems. Looks like it's still serious.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:43.000+0000", "updated": "2011-04-15T02:59:43.000+0000" }, { "id": "126383", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [e12366086233dddaf83cd53518a489ce0788d29f])\n[#1693 state:fixed-in-qa] Only tell the parent\nthat the child is resizing if it actually, you know, is resizing.\n\nhttps://github.com/appcelerator/titanium_mobile/commit/e12366086233...

{html}", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:43.000+0000", "updated": "2011-04-15T02:59:43.000+0000" }, { "id": "126384", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Back to Stephen - 1.5.0.3ee6a97 Looks really good on 4th gen\nipod touches running 4-4.2.1, but on 3rg gen touch(4.0.1) and an\niphone 3g (3.1.3) there are redraw problems where the list draws in\non the bottom of the screen while scrolling, first time scroll only\n(smooths out on a second scroll). It's much, much better than it\nwas, but can it be improved on the slower hardware? if not, will\nclose (hesitant to even bounce it back as its so dramatically\nimproved...)

{html}", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:43.000+0000", "updated": "2011-04-15T02:59:43.000+0000" }, { "id": "126385", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

This is just natural draw times (drawing auto/vertical layouts\ntakes a long time because of all of the dimension calculation\ninvolved on our end). We're getting into the realm of view system\ndraw improvements in general at this point.

\n

Going to switch back to fixed-in-qa - feel free to create a\nfeature/enhancement request for faster view draw times.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:44.000+0000", "updated": "2011-04-15T02:59:44.000+0000" }, { "id": "126386", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Thanks for the info Stephen, closing

{html}", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:59:44.000+0000", "updated": "2011-04-15T02:59:44.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }