{ "id": "149596", "key": "TIMOB-19203", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "14826", "description": "Release 5.1.0-remaining iOS9 features, Android M features", "name": "Release 5.1.0", "archived": false, "released": true, "releaseDate": "2015-11-20" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-09-04T04:49:10.000+0000", "created": "2015-07-10T03:48:12.000+0000", "epic": { "id": 149396, "key": "TIMOB-19145", "name": "iOS: iOS 9 Updates", "summary": "iOS: iOS9 Updates", "color": { "key": "color_1" }, "done": false }, "priority": { "name": "Low", "id": "4" }, "labels": [ "datepicker", "picker" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2015-10-13T21:16:20.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": "{quote}\r\nUIPickerView and UIDatePicker are now resizable and adaptive—previously, these views would enforce a default size even if you attempted to resize them. These views also now default to a width of 320 points on all devices, instead of to the device width on iPhone.\r\nInterfaces that rely on the old enforcement of the default size will likely look wrong when compiled for iOS 9. Any problems encountered can be resolved by fully constraining or sizing picker views to the desired size instead of relying on implicit behavior.\r\n{quote}\r\n\r\nDemo code:\r\n{code}\r\nvar win = Ti.UI.createWindow();\r\nvar picker = Ti.UI.createPicker({height: 500});\r\nvar data = [];\r\n\r\ndata[0]=Ti.UI.createPickerRow({title:'Bananas'});\r\ndata[1]=Ti.UI.createPickerRow({title:'Strawberries'});\r\ndata[2]=Ti.UI.createPickerRow({title:'Mangos'});\r\ndata[3]=Ti.UI.createPickerRow({title:'Grapes'});\r\n\r\npicker.add(data);\r\npicker.selectionIndicator = true;\r\n\r\nwin.add(picker);\r\nwin.open();\r\n{code}\r\n\r\nOn iOS8, nothing should change and the height is ignored. On iOS9, the height should be honored and the picker should resize.", "attachment": [], "flagged": false, "summary": "iOS9: UIPickerView and UIDatePicker are now resizable", "creator": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 481, "state": "closed", "name": "2015 Sprint 18 SDK", "startDate": "2015-08-29T00:30:25.440Z", "endDate": "2015-09-12T00:30:00.000Z", "completeDate": "2015-09-14T05:24:05.135Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "362086", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~cng] So our job is to size them back to full-width by default and apply the \"width\" property to the picker? A little bit more context would be great here! :-)", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-09-02T19:14:47.000+0000", "updated": "2015-09-02T19:14:47.000+0000" }, { "id": "362156", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "1. Make sure they look normal by default on iOS9 on all device types.\r\n2. expose the new iOS9 properties or methods that allows resizing, and\r\n3. make sure there is parity between Android and iOS.\r\n\r\nThere hasn't been much info provided by Apple on what the new methods and properties are and what they do, it's best to do some investigation and see how they can improve our current implementation of picker view while maintaining parity with Android. Maybe they don't help at all then we can just include our investigation result here in this ticket.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-03T07:59:46.000+0000", "updated": "2015-09-03T07:59:46.000+0000" }, { "id": "362176", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~cng] Ok, experiences:\r\n- Picker is currently fixed to 320px, but full width works well if you provide {{width: '100%'}} to the Picker. Happens in both iOS8 and 9. {{initWithFrame:CGRectMake(0, 0, 320, 228)}} can removed and the behavior is, that iOS8 shows full-width and iOS9 320px since the default width of 320px in iOS9.\r\n- I don't see any new methods, properties or delegates in the documentation\r\n- Parity between iOS and android is difficult, since the *native* android pickers are not comparable to the iOS pickers.\r\n\r\nI will do some more research on the researching and awaiting your feedback before editing the frame.\r\n\r\nEDIT: \"Resizeable\" just means, that we now can change the width and height as we want. I will check the existing ways and test some cases.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-09-03T16:57:54.000+0000", "updated": "2015-09-03T17:08:11.000+0000" }, { "id": "362186", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Implemented dynamic height for iOS9+ and a fallback to iOS8 which uses the constraints (width: 320px, height: 228px) used before. Also provided an update in the docs to inform the developer about the changes.\r\n\r\nPR: https://github.com/appcelerator/titanium_mobile/pull/7121", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-09-03T17:43:10.000+0000", "updated": "2015-09-03T18:04:29.000+0000" }, { "id": "362264", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "CR and FT passed. PR Merged.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-04T04:49:01.000+0000", "updated": "2015-09-04T04:49:01.000+0000" }, { "id": "366706", "author": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "body": "Verified as fixed, UIPickerView & UIDatePicker are now resizable, but only applies to iOS9 sims / devices. When building app to iOS8, the height is ignored.\r\n\r\nOSX El Capitan 10.11\r\nStudio: 4.3.1.201509302304\r\nTi SDK: 5.0.2.GA\r\nAppc NPM: 4.2.1-1\r\nAppc CLI: 5.1.0-38", "updateAuthor": { "name": "htbryant", "key": "htbryant", "displayName": "Harry Bryant", "active": true, "timeZone": "Europe/London" }, "created": "2015-10-13T21:16:05.000+0000", "updated": "2015-10-13T21:16:12.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }