{ "id": "61632", "key": "TIMOB-1000", "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": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-06-22T11:47:08.000+0000", "created": "2011-04-15T02:41:12.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "module_scrollableview", "qe-port" ], "versions": [ { "id": "11225", "name": "Release 1.5.0", "archived": true, "released": true, "releaseDate": "2010-12-14" } ], "issuelinks": [], "assignee": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-01-21T21:41:10.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}

http://helpdesk.appcelerator.net/tickets/1901

{html}", "attachment": [], "flagged": false, "summary": "iOS: support pagingControlColor:'transparent' in scrollable view", "creator": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "nwright", "key": "nwright", "displayName": "Nolan Wright", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "124538", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Couldn't find the ticket (Clicking the link takes me to the\ngeneral list). Is this related to http://developer.appcelerator.com/helpdesk/view/24361\n?

{html}", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:41:12.000+0000", "updated": "2011-04-15T02:41:12.000+0000" }, { "id": "124539", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Did this ever get fixed?

{html}", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:41:12.000+0000", "updated": "2011-04-15T02:41:12.000+0000" }, { "id": "124540", "author": { "name": "adriano", "key": "adriano", "displayName": "Adriano Paladini", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Hello, I made a design change in ScrollableView to accept\nthe
\nPagingControl transparency.

\n

In fact, the pagingControlColor already accepts 'transparent',\nthe problem is in the area
\nrendered image, which is restricted to the total size of the\nScrollable less
\npagingControl size.

\n

I did so to use in my project, edit TiUIScrollableView.m:

\n

Change this line:

\n

viewBounds.size.height = visibleBounds.size.height -\n(showPageControl ? pageControlHeight : 0);

\n

to this:

\n

viewBounds.size.height = visibleBounds.size.height; // -\n(showPageControl ? pageControlHeight : 0);

\n

and Change this:

\n

contentBounds.size.height = viewBounds.size.height -\n(showPageControl ? pageControlHeight : 0);

\n

to this:

\n

contentBounds.size.height = viewBounds.size.height; // -\n(showPageControl ? pageControlHeight : 0);

\n

Hope this helps in solving this problem.

{html}", "updateAuthor": { "name": "adriano", "key": "adriano", "displayName": "Adriano Paladini", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:41:13.000+0000", "updated": "2011-04-15T02:41:13.000+0000" }, { "id": "124541", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Blain, I don't know... DID this ever get fixed?

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:41:13.000+0000", "updated": "2011-04-15T02:41:13.000+0000" }, { "id": "199774", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Transparent is supported as a valid color for pagingControl. In addition we now also support `pagingControlAlpha` property since 2.1.0", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-06-22T11:42:14.000+0000", "updated": "2012-06-22T11:42:14.000+0000" }, { "id": "235252", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified that pagingControlColor:'transparent' is supported and working fine for scrollableViews.\nDevice tested:\n- iPhone 5 / iOS 6.0.2\n- iPad 2 / iOS 4.3.5\n\nTiSDK 3.0 GA and 3.0.X\n\nSample code:\n{code}\nfunction getOrientation(o) {//Came from orientation.js, but we didn't need the buttons and such\n\tswitch (o) {\n\t\tcase Titanium.UI.PORTRAIT:\n\t\t\treturn 'portrait';\n\t\tcase Titanium.UI.UPSIDE_PORTRAIT:\n\t\t\treturn 'upside portrait';\n\t\tcase Titanium.UI.LANDSCAPE_LEFT:\n\t\t\treturn 'landscape left';\n\t\tcase Titanium.UI.LANDSCAPE_RIGHT:\n\t\t\treturn 'landscape right';\n\t\tcase Titanium.UI.FACE_UP:\n\t\t\treturn 'face up';\n\t\tcase Titanium.UI.FACE_DOWN:\n\t\t\treturn 'face down';\n\t\tcase Titanium.UI.UNKNOWN:\n\t\t\treturn 'unknown';\n\t}\n}\n\nvar win = Titanium.UI.createWindow({\n\ttitle : 'Test win'\n});\nwin.backgroundColor = 'orange';\n\n// initialize to all modes\nwin.orientationModes = [Titanium.UI.PORTRAIT, Titanium.UI.LANDSCAPE_LEFT, Titanium.UI.LANDSCAPE_RIGHT];\n\n//\n// orientation change listener\n//\nTi.Gesture.addEventListener('orientationchange', function(e) {\n\n\t// get orienation from event object\n\tvar orientation = getOrientation(e.orientation);\n});\n\nvar view1 = Ti.UI.createView({\n\tbackgroundColor : 'red'\n});\nvar l1 = Ti.UI.createLabel({\n\ttext : 'View 1',\n\tcolor : '#fff',\n\twidth : 'auto',\n\theight : 'auto'\n});\nview1.add(l1);\n\nvar view2 = Ti.UI.createView({\n\tbackgroundColor : 'blue'\n});\nvar l2 = Ti.UI.createLabel({\n\ttext : 'Click Me (View 2 - see log)',\n\tcolor : '#fff',\n\twidth : 'auto',\n\theight : 'auto'\n});\nview2.add(l2);\n\nvar view3 = Ti.UI.createView({\n\tbackgroundColor : 'green'\n});\nvar l3 = Ti.UI.createLabel({\n\ttext : 'View 3',\n\tcolor : '#fff',\n\twidth : 'auto',\n\theight : 'auto'\n});\nview3.add(l3);\n\nvar view4 = Ti.UI.createView({\n\tbackgroundColor : 'black'\n});\nvar l4 = Ti.UI.createLabel({\n\ttext : 'View 4',\n\tcolor : '#fff',\n\twidth : 'auto',\n\theight : 'auto'\n});\nview4.add(l4);\n\nvar scrollView = Titanium.UI.createScrollableView({\n\tviews : [view1, view2, view3, view4],\n\tshowPagingControl : true,\n\tpagingControlColor : 'transparent',\n\tpagingControlHeight : 30,\n\tmaxZoomScale : 2.0,\n\tcurrentPage : 1\n});\n\nwin.add(scrollView);\n\nvar i = 1;\nvar activeView = view1;\n\nscrollView.addEventListener('scroll', function(e) {\n\tactiveView = e.view;\n\t// the object handle to the view that is about to become visible\n\ti = e.currentPage;\n\tTitanium.API.info(\"scroll called - current index \" + i + ' active view ' + activeView);\n});\nscrollView.addEventListener('click', function(e) {\n\tTi.API.info('ScrollView received click event, source = ' + e.source);\n});\nscrollView.addEventListener('touchend', function(e) {\n\tTi.API.info('ScrollView received touchend event, source = ' + e.source);\n});\n\n// add button to dynamically add a view\nvar add = Titanium.UI.createButton({\n\ttitle : 'Add'\n});\nif (Ti.Platform.osname !== 'mobileweb') {\n\tadd.style = Titanium.UI.iPhone.SystemButtonStyle.BORDERED\n}\nadd.addEventListener('click', function() {\n\tvar newView = Ti.UI.createView({\n\t\tbackgroundColor : 'purple'\n\t});\n\tvar l = Ti.UI.createLabel({\n\t\ttext : 'View ' + (scrollView.views.length + 1),\n\t\tcolor : '#fff',\n\t\twidth : 'auto',\n\t\theight : 'auto'\n\t});\n\tnewView.add(l);\n\tscrollView.addView(newView);\n});\n\n// jump button to dynamically change go directly to a page (non-animated)\nvar jump = Titanium.UI.createButton({\n\ttitle : 'Jump'\n});\nif (Ti.Platform.osname !== 'mobileweb') {\n\tjump.style = Titanium.UI.iPhone.SystemButtonStyle.BORDERED;\n}\njump.addEventListener('click', function() {\n\ti = (scrollView.currentPage + 1) % scrollView.views.length;\n\tscrollView.currentPage = i;\n});\n\n// change button to dynamically change a view\nvar change = Titanium.UI.createButton({\n\ttitle : 'Change'\n});\nif (Ti.Platform.osname !== 'mobileweb') {\n\tchange.style = Titanium.UI.iPhone.SystemButtonStyle.BORDERED;\n}\nchange.addEventListener('click', function() {\n\tvar newView = Ti.UI.createView({\n\t\tbackgroundColor : '#ff9900'\n\t});\n\tvar l = Ti.UI.createLabel({\n\t\ttext : 'View (Changed) ' + (i + 1),\n\t\tcolor : '#fff',\n\t\theight : 'auto',\n\t\twidth : 'auto'\n\t});\n\tnewView.add(l);\n\tvar ar = [];\n\tfor (var x = 0; x < scrollView.views.length; x++) {\n\t\tif (x == i) {\n\t\t\tTi.API.info('SETTING TO NEW VIEW ' + x);\n\t\t\tar[x] = newView;\n\t\t} else {\n\t\t\tTi.API.info('SETTING TO OLD VIEW ' + x);\n\n\t\t\tar[x] = scrollView.views[x];\n\t\t}\n\t}\n\tscrollView.views = ar;\n});\n\n// move scroll view left\nvar left = Titanium.UI.createButton({\n\tbackgroundColor : 'transparent',\n\timage : '/images/icon_arrow_left.png'\n});\nleft.addEventListener('click', function(e) {\n\tif (i === 0) {\n\t\treturn;\n\t}\n\ti--;\n\tscrollView.scrollToView(i);\n});\n\n// move scroll view right\nvar right = Titanium.UI.createButton({\n\tbackgroundColor : 'transparent',\n\timage : '/images/icon_arrow_right.png'\n});\nright.addEventListener('click', function(e) {\n\tif (i === (scrollView.views.length - 1)) {\n\t\treturn;\n\t}\n\ti++;\n\tscrollView.scrollToView(scrollView.views[i]);\n});\n\nif (Titanium.Platform.osname == 'iphone' || Titanium.Platform.osname == 'ipad') {\n\tvar flexSpace = Titanium.UI.createButton({\n\t\tsystemButton : Titanium.UI.iPhone.SystemButton.FLEXIBLE_SPACE\n\t});\n\t// set toolbar\n\twin.setToolbar([flexSpace, left, change, add, jump, right, flexSpace]);\n} else {\n\tvar toolbar = Titanium.UI.createView({\n\t\tbottom : 10,\n\t\theight : 50,\n\t\tbackgroundColor : '#333333',\n\t\tborderRadius : 10,\n\t\topacity : 0.7,\n\t\tleft : 10,\n\t\tright : 10\n\t});\n\n\tvar floater = Titanium.UI.createView({\n\t\twidth : 320,\n\t\theight : 'auto',\n\t\tbackgroundColor : 'transparent'\n\t});\n\n\ttoolbar.add(floater);\n\n\tleft.left = 10;\n\tleft.width = 35;\n\n\tchange.left = 50;\n\tchange.width = 70;\n\tchange.height = 35;\n\n\tadd.left = 130;\n\tadd.width = 70;\n\tadd.height = 35;\n\n\tjump.left = 210;\n\tjump.width = 70;\n\tjump.height = 35;\n\n\tright.right = 10;\n\tright.width = 35;\n\n\tfloater.add(left);\n\tfloater.add(change);\n\tfloater.add(add);\n\tfloater.add(jump);\n\tfloater.add(right);\n\twin.add(toolbar);\n};\nwin.open();\n\n{code}", "updateAuthor": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-21T21:40:22.000+0000", "updated": "2013-01-21T21:40:22.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }