{ "id": "148154", "key": "TIMOB-19036", "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": "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": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2015-10-22T20:55:06.000+0000", "created": "2015-05-23T05:12:17.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "49422", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "outwardIssue": { "id": "149561", "key": "TIMOB-19647", "fields": { "summary": "iOS: ImageViews with remote images slow and failing", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2015-11-02T19:47:39.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": "As of this version (4.0.1) on iOS, when scrolling through a ListView that contains ImageViews that use remote images, the images are not loaded until the scrolling of the ListView comes to a complete stop.\r\n\r\nRunning the same project with 3.5.1 yields the expected result where the ImageViews get loaded as you scroll through the list.", "attachment": [], "flagged": false, "summary": "iOS: Remote ImageViews not loading while scrolling ListView ", "creator": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "iOS 8, 9\r\nTitanium SDK 5.0.0", "comment": { "comments": [ { "id": "353372", "author": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "body": "After looking at this further, a lot of times the images don't even load at all unless you play with the scrolling, meaning you scroll past the rows, then go back and stop.", "updateAuthor": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-05-23T16:14:40.000+0000", "updated": "2015-05-23T16:14:40.000+0000" }, { "id": "353388", "author": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, I have tested this issue with SDK 4.0.0.RC5, with new Appcelerator Studio build: 4.0.1.201505170721. I wasn't able to regenerate the issue. Simple listview with imageview in templates with list section where the image is remote image seems to work fine in iOS. Please provide the test case, so we can regenerate the issue. Thanks.", "updateAuthor": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2015-05-24T10:50:23.000+0000", "updated": "2015-05-24T10:50:23.000+0000" }, { "id": "354961", "author": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Amimul,\r\n\r\nSorry I haven't gotten around to providing a test case yet. My project is pretty large so abstracting the list in question is a little difficult.\r\n\r\nI just tested with a continuous build (4.1.0) and the issue is still present.\r\n\r\nI'll try to get you a test case soon, but in the meantime, I wanted to provide you the template in question. It's pretty complex so I'm thinking maybe the issue is something with what the image is actually in.\r\n\r\nTo re-itterate, the images with bindId \"pic\" load in a very weird/broken pattern under any SDK above 3.5.1. On 4.0.0 and 4.1.0 the images don't get loaded while scrolling and you need to come to a complete stop, and even then sometimes you need to fidget with the scrolling to get them to load.\r\n\r\n\r\nTemplate:\r\n{noformat}\r\nvar template = {\r\n\t\t childTemplates: [\r\n\t\t {\r\n\t\t \t type: \"Ti.UI.View\",\r\n\t\t \t properties: {\r\n\t\t \t \twidth: \"100%\",\r\n\t\t \t \theight: Ti.UI.SIZE,\r\n\t\t \t \tlayout: \"horizontal\",\r\n\t\t \t \thorizontalWrap: false,\r\n\t\t \t \ttop: \"8dip\",\r\n\t\t \t \tleft: \"10dip\"\r\n\t\t \t },\r\n\t\t \t childTemplates: [\r\n\t\t \t \t{\r\n\t\t \t \t\ttype: \"Ti.UI.View\",\r\n\t\t\t\t \tproperties: {\r\n\t\t\t\t \t width: 50,\r\n\t\t\t height: 50,\r\n\t\t\t\t \t },\r\n\t\t\t\t \t childTemplates: [\r\n\t\t\t\t \t \t{\r\n\t\t\t\t type: 'Ti.UI.ImageView',\r\n\t\t\t\t bindId: 'pic',\r\n\t\t\t\t properties: {\r\n\t\t\t\t width: 50,\r\n\t\t\t\t height: 50,\r\n\t\t\t\t borderRadius: 25,\r\n\t\t\t\t preventDefaultImage: true\r\n\t\t\t\t }\r\n\t\t\t\t },\r\n\t\t\t\t {\r\n\t\t\t\t type: 'Ti.UI.View',\r\n\t\t\t\t bindId: 'whiteCircle',\r\n\t\t\t\t properties: {\r\n\t\t\t\t width: 16,\r\n\t\t\t\t height: 16,\r\n\t\t\t\t borderRadius: 8,\r\n\t\t\t\t backgroundColor: \"#fff\",\r\n\t\t\t\t top: 0,\r\n\t\t\t\t right: 0,\r\n\t\t\t\t visible: false\r\n\t\t\t\t }\r\n\t\t\t\t },\r\n\t\t\t\t {\r\n\t\t\t\t type: 'Ti.UI.Label',\r\n\t\t\t\t bindId: 'readCheck',\r\n\t\t\t\t properties: {\r\n\t\t\t\t \ttop: 1,\r\n\t\t\t\t \tleft: -1,\r\n\t\t\t\t \ttextAlign: Titanium.UI.TEXT_ALIGNMENT_RIGHT,\r\n\t\t\t\t width: \"100%\",\r\n\t\t\t\t height: Ti.UI.SIZE,\r\n\t\t\t\t text: \"\\uE60E\",\r\n\t\t\t\t color: \"#aaaab8\",\r\n\t\t\t\t font: {\r\n\t\t\t\t \tfontFamily : \"icomoon\",\r\n\t\t\t\t \tfontSize: 14\r\n\t\t\t\t },\r\n\t\t\t\t visible: false\r\n\t\t\t\t }\r\n\t\t\t\t }\r\n\t\t\t\t ]\r\n\t\t\t },\r\n\t\t\t {\r\n\t\t\t \ttype: \"Ti.UI.View\",\r\n\t\t\t\t \tproperties: {\r\n\t\t\t\t \t top: 0,\r\n\t\t\t\t \t width: Ti.App.realWidth - 73,\r\n\t\t\t\t \t height: Ti.UI.SIZE,\r\n\t\t\t\t \t layout: \"vertical\",\r\n\t\t\t\t \t left: 10\r\n\t\t\t\t \t},\r\n\t\t\t\t \tchildTemplates: [\r\n\t\t\t\t \t\t{\r\n\t\t\t\t\t type: \"Ti.UI.Label\",\r\n\t\t\t\t\t bindId: \"title\",\r\n\t\t\t\t\t properties: {\r\n\t\t\t\t\t \ttop: 3,\r\n\t\t\t\t\t \tleft: 0,\r\n\t\t\t\t\t \tbottom: 3,\r\n\t\t\t\t\t width: Ti.App.realWidth - 83,\r\n\t\t\t\t\t height: Ti.UI.SIZE,\r\n\t\t\t\t\t color: \"#000\",\r\n\t\t\t\t\t font: {\r\n\t\t\t\t\t\t\t\t\t\tfontFamily: \"Helvetica Neue\",\r\n\t\t\t\t\t \tfontWeight: \"bold\"\r\n\t\t\t\t\t }\r\n\t\t\t\t\t }\r\n\t\t\t\t\t },\r\n\t\t\t\t\t {\r\n\t\t\t\t\t \ttype: \"Ti.UI.View\",\r\n\t\t\t\t\t\t \tproperties: {\r\n\t\t\t\t\t\t \t width: Ti.UI.FILL,\r\n\t\t\t\t\t\t \t height: Ti.UI.SIZE\r\n\t\t\t\t\t\t \t},\r\n\t\t\t\t\t\t \tchildTemplates: [\r\n\t\t\t\t\t\t \t\t{\r\n\t\t\t\t\t\t\t type: \"Ti.UI.Label\",\r\n\t\t\t\t\t\t\t bindId: \"source\",\r\n\t\t\t\t\t\t\t properties: {\r\n\t\t\t\t\t\t\t \ttop: 0,\r\n\t\t\t\t\t\t\t \tleft: 0,\r\n\t\t\t\t\t\t\t \tbottom: 11,\r\n\t\t\t\t\t\t\t \tcolor: \"#aaaab8\",\r\n\t\t\t\t\t\t\t width: Ti.UI.SIZE,\r\n\t\t\t\t\t\t\t height: Ti.UI.SIZE,\r\n\t\t\t\t\t\t\t font: {\r\n\t\t\t\t\t\t\t \tfontFamily: \"Helvetica Neue\",\r\n\t\t\t\t\t\t\t \tfontSize: 12\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t type: \"Ti.UI.Label\",\r\n\t\t\t\t\t\t\t bindId: \"timestamp\",\r\n\t\t\t\t\t\t\t properties: {\r\n\t\t\t\t\t\t\t \ttop: 0,\r\n\t\t\t\t\t\t\t \tright: 12,\r\n\t\t\t\t\t\t\t \tbottom: 11,\r\n\t\t\t\t\t\t\t \tcolor: \"#aaaab8\",\r\n\t\t\t\t\t\t\t \ttext: \"12m\",\r\n\t\t\t\t\t\t\t width: Ti.UI.SIZE,\r\n\t\t\t\t\t\t\t height: Ti.UI.SIZE,\r\n\t\t\t\t\t\t\t font: {\r\n\t\t\t\t\t\t\t \tfontFamily: \"Helvetica Neue\",\r\n\t\t\t\t\t\t\t \tfontSize: 12\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t \t]\r\n\t\t\t\t\t }\r\n\t\t\t\t \t]\r\n\t\t\t }\r\n\t\t \t ]\r\n\t\t }\r\n\t\t ]\r\n\t\t};\r\n{noformat}", "updateAuthor": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-06-12T02:37:27.000+0000", "updated": "2015-06-12T02:38:25.000+0000" }, { "id": "355200", "author": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello,\r\n\r\nI have created a sample code to work with listview with Template with remote image, it seems to work fine with SDK 4.0.0.GA. The only issue i saw in iOS is it depends on the internet speed to download the images. so thats why it seem lagging to load the images.\r\n\r\n\r\nh5. CODE SAMPLE\r\n{code}\r\nvar win = Ti.UI.createWindow({backgroundColor: 'white'});\r\n\r\n// Create a custom template that displays an image on the left, \r\n// then a title next to it with a subtitle below it.\r\nvar myTemplate = {\r\n\tproperties: { // Sets the image view properties\r\n height: '250dp'\r\n },\r\n childTemplates: [\r\n { // Image justified left\r\n type: 'Ti.UI.ImageView', // Use an image view for the image\r\n bindId: 'pic', // Maps to a custom pic property of the item data\r\n properties: { // Sets the image view properties\r\n width: Ti.UI.FILL, height: Ti.UI.FILL,\r\n }\r\n },\r\n ]\r\n};\r\n\r\nvar listView = Ti.UI.createListView({\r\n // Maps myTemplate dictionary to 'template' string\r\n templates: { 'template': myTemplate },\r\n // Use 'template', that is, the myTemplate dict created earlier\r\n // for all items as long as the template property is not defined for an item.\r\n defaultItemTemplate: 'template'\r\n});\r\nvar sections = [];\r\n\r\nvar fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits / Frutas'});\r\nvar fruitDataSet = [\r\n\r\n { pic: {image: 'https://www.leuchtturm.com/WebRoot/Store/Shops/leuchtturm_eu/Products_bild2/hmetui23.jpg'}},\r\n { pic: {image: 'http://orig08.deviantart.net/24c1/f/2009/238/d/8/small_50x50__png_clock_pic_by_counter_countdown_ip.png'}}, \r\n { pic: {image: 'http://www.clker.com/cliparts/l/u/5/P/D/A/arrow-50x50-md.png'}},\r\n { pic: {image: 'http://www.strongteak.com/images/kecil/edy_4f62291d967a52ac0ed9619c6aeda35f.jpg'}}, \r\n { pic: {image: 'https://thingiverse-production-new.s3.amazonaws.com/renders/16/04/2d/b5/ed/smiley_face_thumb_small.jpg'}},\r\n { pic: {image: 'http://www.avissasalon.com/wp-content/uploads/2013/08/facebook-logo-small-50x50.jpg'}}, \r\n { pic: {image: 'http://cdn2.hubspot.net/hub/32387/file-13762988-png/images/linkedin-logo-landing-page.png'}},\r\n { pic: {image: 'http://www.southfieldlibrary.org/wp-content/uploads/2010/03/growing-money-small.jpg'}}, \r\n { pic: {image: 'http://love-invincible.com/wp-content/uploads/2014/06/LI-NEW-500x500.png'}},\r\n { pic: {image: 'http://www.strima.com/image/1026241/p/1/HOOP-SMALL-JANOME-Hoop-small-50x50-mm-for-JANOME-MEMORY-CRAFT-200E.jpg'}}, \r\n { pic: {image: 'https://www.leuchtturm.com/WebRoot/Store/Shops/leuchtturm_eu//Products//hmetui23.jpg'}},\r\n { pic: {image: 'http://www.laplandhouse.com/res/default/sittdynabc12_small.jpg'}}, \r\n { pic: {image: 'http://carstenknoch.com/wp-content/uploads/2012/12/iTunes10-icon-small.png'}},\r\n { pic: {image: 'http://dogcitydaycare.com.au/wp-content/uploads/2012/01/Pup-small.jpg'}}, \r\n { pic: {image: 'http://www.olanderswim.se/shop/17794/art94/h6865/5326865-origpic-c902c9.jpg'}},\r\n { pic: {image: 'http://www.angmarmedical.com/wp-content/uploads/2013/06/Pinterest-Logo-Vector-by-Jon-Bennallick-02-300x300.png'}}, \r\n { pic: {image: 'http://www.mimou.se/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/c/u/cu050.jpg'}},\r\n { pic: {image: 'http://pizzainmotion.img.boardingarea.com/wp-content/uploads/2014/11/facebook-icon-50x50.jpg'}}, \r\n { pic: {image: 'http://files.jimeh.me/.blog/jimeh_2.0_large-20100205-042205.jpg'}},\r\n { pic: {image: 'http://www.avatarswizard.com/uploads/av/2010-01/thumbs/100x100_1263466725_100x100_1234342881_small_avatars_naruto_0151.jpg.jpg'}}, \r\n { pic: {image: 'http://www.fmwconcepts.com/misc_tests/normcrosscorr_tests/wizardsq.png'}},\r\n { pic: {image: 'http://www3.ipc.org.es/guia_colocacion/info_tec_colocacion/mat_agarre/adherencia/medida/parrafos/00/imageMax1/image/propamsa1.jpg'}}, \r\n { pic: {image: 'http://dogcitydaycare.com.au/wp-content/uploads/2011/11/Brown-lab-small-200x245.jpg'}},\r\n { pic: {image: 'http://files.jimeh.me/.blog/jimeh_1.0_large-20100205-042133.jpg'}}, \r\n { pic: {image: 'http://www.narrowbandimaging.com/images/rosette_ap155edf_f7_FF_PL39KM_ChromaHa_7x10min.jpg'}},\r\n { pic: {image: 'http://eng.boulychev-art.com/files/images/smalldifficulties50x50cm.jpg'}}, \r\n { pic: {image: 'http://img03.taobaocdn.com/bao/uploaded/i3/498594120/T2P2OwXdNXXXXXXXXX_!!498594120.jpg'}},\r\n { pic: {image: 'http://www.mir.com/DMG/Software/CmpImgs/square-200x200.pgm.png'}}, \r\n { pic: {image: 'http://globalcardiacrehab.com/wp-content/uploads/Chinese-CR-logo-small-size.jpg'}},\r\n { pic: {image: 'https://www.kickball.com/files/resize/league/184840/facebook_icon_small_png_4aabf4af53-50x50.png'}}, \r\n { pic: {image: 'http://image.architonic.com/img_pro2-1/113/7526/Droppe-stor-sv-50-50-b.jpg'}},\r\n { pic: {image: 'http://www.writebynight.net/wp-content/uploads/2011/03/Twitter-icon.jpg'}}, \r\n { pic: {image: 'http://love-invincible.com/wp-content/uploads/2014/05/Icon-Heart-SLIDER-SMALL.jpg'}},\r\n { pic: {image: 'http://img.diytrade.com/smimg/625512/4916181-260100-0/nn/a55.jpg'}}, \r\n { pic: {image: 'http://www.tecninovainteriors.com/438-productlist/25011-small-cusion-40x40-col-countryside.jpg'}},\r\n { pic: {image: 'http://www.tecninovainteriors.com/464-productlist/25025-small-cushion-50x50-col-countryside.jpg'}}, \r\n { pic: {image: 'http://www.furniturepalacekenya.com/image/cache/data/Sofitalia/Gemona-03%20Small-650x650.jpg'}},\r\n { pic: {image: 'http://www.kauffmancenter.org/wp-content/uploads/smaller-right-fixed-more-space-50x50.jpg'}}, \r\n { pic: {image: 'http://www.mumsintheknow.co.uk/bramhall/wp-content/uploads/2013/06/Love-Sweat-Logo-small-300x199.jpg'}},\r\n { pic: {image: 'http://www.avissasalon.com/wp-content/uploads/2013/08/facebook-logo-small-50x50.jpg'}}, \r\n { pic: {image: 'http://img02.taobaocdn.com/bao/uploaded/i2/T162G2Xb4kXXcrBfo9_103316.jpg'}},\r\n { pic: {image: 'https://ms-tw.s3.amazonaws.com/variant_image/3078/full_0s6o961q5q1e0c5y.jpg'}}, \r\n { pic: {image: 'http://www.mobilevillage.com/wp-content/uploads/2013/03/Android-evil-small.jpg'}},\r\n { pic: {image: 'https://ms-tw.s3.amazonaws.com/variant_image/3080/full_0s6o964o6q1o5l4n.jpg'}}, \r\n { pic: {image: 'http://www.antiqueandcontemporaryartgallery.com/images/SmallWindows.jpg'}},\r\n { pic: {image: 'http://a142.idata.over-blog.com/0/08/04/72/portrait/F-line-web.jpg'}}, \r\n { pic: {image: 'http://www.cross-point.com/imagesProducts/soumak/soac,-sosm04,tasm01.jpg'}},\r\n { pic: {image: 'http://closummitindia.com/wp-content/uploads/2012/04/iStock_000012676792Small-512x300.jpg'}}, \r\n { pic: {image: 'http://subud.org/iscmedia/buttons/SymbolBlueXL.png'}},\r\n { pic: {image: 'http://assets.loeildelaphotographie.com/uploads/article_photo/image/22937/Sokolsky_LipStreaks_HiRes_small.jpg'}}, \r\n { pic: {image: 'http://www.teleskop-express.de/shop/Bilder/shop/Yukon/model_yukon_20-50x50_wa.jpg'}},\r\n { pic: {image: 'http://www.farmhouseshop.se/shop/12608/art8/h6032/10386032-origpic-f0ae25.jpg'}}, \r\n { pic: {image: 'http://www.mimou.se/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/c/u/cu853.jpg'}},\r\n { pic: {image: 'https://upload.wikimedia.org/wikipedia/en/9/97/Fangoria_Skull_Small.png'}},\r\n];\r\nfruitSection.setItems(fruitDataSet);\r\nsections.push(fruitSection);\r\n\r\n\r\nlistView.setSections(sections);\r\nwin.add(listView);\r\nwin.open();\r\n{code}\r\n\r\nThanks.\r\n", "updateAuthor": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2015-06-16T11:38:32.000+0000", "updated": "2015-06-16T11:38:32.000+0000" }, { "id": "355329", "author": { "name": "arif", "key": "arif", "displayName": "Arjan", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "I am also experiencing this issue. Made 2 screencasts:\r\n\r\n3.5.1.GA : https://www.youtube.com/watch?v=W_YgY4jChLY&feature=youtu.be\r\n4.0.0.GA / 4.1.X : https://www.youtube.com/watch?v=zpeiE_q8ZyU&feature=youtu.be\r\n", "updateAuthor": { "name": "arif", "key": "arif", "displayName": "Arjan", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-06-17T12:38:34.000+0000", "updated": "2015-06-17T12:38:34.000+0000" }, { "id": "355333", "author": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Amimul - thanks for trying to reproduce. I'm thinking this issue gets caused by a more complex listview somehow (see my above listview template)\r\n\r\nArjan - thanks for reproducing and taking these videos! These perfectly show the same issue I'm experiencing too.\r\n\r\nI can take a screen capture too, if that would help, but it would look very similar to Arjan's.\r\n\r\nPlease let us know what you need.", "updateAuthor": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-06-17T14:15:44.000+0000", "updated": "2015-06-17T14:15:44.000+0000" }, { "id": "355335", "author": { "name": "arif", "key": "arif", "displayName": "Arjan", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "David, I think I found the cause and solution, thanks to some help on the new ti.slack channel.\r\n\r\nApparently, the listView has changed in 4.XX: https://github.com/appcelerator/titanium_mobile/commit/1d55715a0f3976ac01e1aef17398e35b165bdd84\r\n\r\nA comment on slack:\r\n\r\n{quote}cdr [3:40 PM]\r\nthat commit looks wrong, i think it should also resume the ImageLoader on scrollViewDidEndDragging because scrollViewDidEndDecelerating isn't always called\r\n\r\ncdr [3:40 PM]\r\nyou can see in your video that it works if you don't \"flick\" (scroll) the list, if you just drag and never release the images load\r\n\r\ncdr [3:41 PM]\r\nlike Ti.UI.ScrollView has dragEnd and scrollEnd{quote}\r\n\r\nSolution (thanks to ludolphus): \r\n\r\n- edit ~/Library/Application Support/Titanium/mobilesdk/osx/4.0.0.GA/iphone/Classes/TiUIListView.m\r\n- look for scrollViewDidEndDragging\r\n- add : [[ImageLoader sharedLoader] resume];\r\n\r\nNow the images will load directly again, instead of after releasing the listview. Maybe appcelerator should build in a option/argument for the listView so we can choose which method to use for loading images (directly or after releasing/ending scroll).", "updateAuthor": { "name": "arif", "key": "arif", "displayName": "Arjan", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-06-17T14:27:39.000+0000", "updated": "2015-06-17T14:28:33.000+0000" }, { "id": "355336", "author": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Great find!! Thank you for posting this, I really appreciate it.\r\n\r\nAn option would be good. If no option, then it seems the old behavior is much preferable. ", "updateAuthor": { "name": "dfoxinator", "key": "dfoxinator", "displayName": "David Fox", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-06-17T14:41:19.000+0000", "updated": "2015-06-17T14:41:19.000+0000" }, { "id": "366557", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~egomez] What is their rationale for that choice?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-10-12T20:09:42.000+0000", "updated": "2015-10-12T20:09:42.000+0000" }, { "id": "367567", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Resolving as duplicate of TIMOB-19647, please check the related PR to verify, that the issue is now fixed.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-10-22T20:53:53.000+0000", "updated": "2015-10-22T20:55:40.000+0000" }, { "id": "368688", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as duplicate.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-11-02T19:47:30.000+0000", "updated": "2015-11-02T19:47:30.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }