{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/react-native/issues/332","labels_url":"https://api.github.com/repos/facebook/react-native/issues/332/labels{/name}","comments_url":"https://api.github.com/repos/facebook/react-native/issues/332/comments","events_url":"https://api.github.com/repos/facebook/react-native/issues/332/events","html_url":"https://github.com/facebook/react-native/issues/332","id":64738805,"number":332,"title":"[Request: TableViewIOS] directly wrap UITableView with a TableViewIOS component","user":{"login":"gabro","id":691940,"avatar_url":"https://avatars.githubusercontent.com/u/691940?v=3","gravatar_id":"","url":"https://api.github.com/users/gabro","html_url":"https://github.com/gabro","followers_url":"https://api.github.com/users/gabro/followers","following_url":"https://api.github.com/users/gabro/following{/other_user}","gists_url":"https://api.github.com/users/gabro/gists{/gist_id}","starred_url":"https://api.github.com/users/gabro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gabro/subscriptions","organizations_url":"https://api.github.com/users/gabro/orgs","repos_url":"https://api.github.com/users/gabro/repos","events_url":"https://api.github.com/users/gabro/events{/privacy}","received_events_url":"https://api.github.com/users/gabro/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":50,"created_at":"2015-03-27T10:55:56Z","updated_at":"2015-08-05T20:24:54Z","closed_at":null,"body":"According to #143, `ListView` is a thin wrapper around a `UIScrollView`.\r\n\r\nI'm totally ok with that, however, after trying React Native for a simple app, I really miss a real `UITableView`, which is probably one of the most pervasive components in any iOS app.\r\n\r\nThe most unsettling thing so far (I didn't explore much) is the look and feel. In order to achieve a default iOS7-looking table view (with line separators and disclosure indicators on cells, for instance) it's kind of a lot of customization work on top of `ListView`.\r\n\r\nWhat I ended up with after a few experimenting still doesn't feel like native. Of course one could go through the effort of carefully providing style for the underlying `UIScrollView`, but honestly, what's the point? :) \r\n\r\nHere's a list of features - from the top of my head - we would get \"for free\" by providing a native wrapper for `UITableView` (and `UITableViewCell`):\r\n\r\n- iOS native look and feel\r\n  - line separators (with default inset)\r\n  - disclosure indicators, detail indicators...\r\n  - swipe to reveal delete\r\n  - reorder handle\r\n- build-in functionalities\r\n  - cell insertion/reordering/deletion\r\n  - delegate events for the above\r\n  - cell caching\r\n\r\nBottom line, what we have so far is an extremely cool and powerful framework for building native apps, which fails at providing a native look&feel for one of (the?) the most common iOS views.\r\n\r\ntl; dr I can't imagine iOS native development without `UITableView`. Please provide a `TableViewIOS` component :)"},"comment":{"url":"https://api.github.com/repos/facebook/react-native/issues/comments/128136784","html_url":"https://github.com/facebook/react-native/issues/332#issuecomment-128136784","issue_url":"https://api.github.com/repos/facebook/react-native/issues/332","id":128136784,"user":{"login":"josebalius","id":339080,"avatar_url":"https://avatars.githubusercontent.com/u/339080?v=3","gravatar_id":"","url":"https://api.github.com/users/josebalius","html_url":"https://github.com/josebalius","followers_url":"https://api.github.com/users/josebalius/followers","following_url":"https://api.github.com/users/josebalius/following{/other_user}","gists_url":"https://api.github.com/users/josebalius/gists{/gist_id}","starred_url":"https://api.github.com/users/josebalius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josebalius/subscriptions","organizations_url":"https://api.github.com/users/josebalius/orgs","repos_url":"https://api.github.com/users/josebalius/repos","events_url":"https://api.github.com/users/josebalius/events{/privacy}","received_events_url":"https://api.github.com/users/josebalius/received_events","type":"User","site_admin":false},"created_at":"2015-08-05T20:24:54Z","updated_at":"2015-08-05T20:24:54Z","body":"@jordwalke Makes sense, would still love to see the code :), have you looked at http://asyncdisplaykit.org/appledoc/Classes/ASTableView.html ? I have a proof of concept that renders an ASTableView with some natively created rows inside a React Native app, performance seems great so far. What I can't get past is how to render the react rows and add them as subview of the ASCellNode view that AsyncDisplay uses to render it's cells. Maybe i'll have to pre-render them like you did instead of rendering them async on demand.\r\n\r\nFor me this is more about exploring possibilities that we have in RN, my biggest complain of ListView is that when you have a lot of \"heavy\" rows and for example navigate to another view (using the navigator), when you navigate back you will start to notice a slight delay in the transition, if I keep my row count low this does not happen, its only happens when the user loads a significant amount of items (think a news feed with a 25 - 50 items loaded all with images, buttons, labels, etc.) it would be nice not to have this limitation.\r\n\r\n\r\n"}}