{"id":20064259,"url":"https://github.com/mochidev/mdspreadviewdemo","last_synced_at":"2025-05-05T18:30:30.277Z","repository":{"id":140662070,"uuid":"2584656","full_name":"mochidev/MDSpreadViewDemo","owner":"mochidev","description":"A 2D table view for iOS apps! This is the demo.","archived":false,"fork":false,"pushed_at":"2014-05-22T23:47:36.000Z","size":1397,"stargazers_count":169,"open_issues_count":3,"forks_count":26,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-09T02:12:45.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mochidev.com/open","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mochidev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-10-16T03:24:46.000Z","updated_at":"2025-03-22T17:38:28.000Z","dependencies_parsed_at":"2023-03-13T10:41:18.942Z","dependency_job_id":null,"html_url":"https://github.com/mochidev/MDSpreadViewDemo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mochidev%2FMDSpreadViewDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mochidev%2FMDSpreadViewDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mochidev%2FMDSpreadViewDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mochidev%2FMDSpreadViewDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mochidev","download_url":"https://codeload.github.com/mochidev/MDSpreadViewDemo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252552883,"owners_count":21766792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T13:45:27.648Z","updated_at":"2025-05-05T18:30:29.987Z","avatar_url":"https://github.com/mochidev.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"MDSpreadView Demo\n=================\n\n![Screenshot](https://github.com/mochidev/MDSpreadViewDemo/raw/master/Artwork/Screenshot.png)\n\nPurpose\n-------\n\n`MDSpreadView` is a rewrite of `UIKit`'s `UITableView` that allows for the display\nof columns and column headers as well as rows. This repository serves to \ndemonstrate and test the `MDSpreadView` class. Please visit the\n[MDSpreadView](https://github.com/mochidev/MDSpreadView) repository for the \nactual code :)\n\nInstallation\n------------\n\n```bash\n$ git clone https://github.com/mochidev/MDSpreadViewDemo --recursive\n```\n\nTo include it into your projects either download the\n[source](https://github.com/mochidev/MDSpreadView), or run the following\non your git repo:\n\n```bash\n$ cd \u003cyour_repo\u003e\n$ git submodule add git@github.com:mochidev/MDSpreadView.git \u003clocal_subpath\u003e/MDSpreadView\n```\n\nThis will allow you to update it at anytime by running `$ git submodule update`.\n\nUsage\n-----\n\nSimply add the\n[MDSpreadView](https://github.com/mochidev/MDSpreadView) submodule to\nyour project, add `#import \"MDSpreadViewClasses.h\"` to the top of the files you \nwish to use `MDSpreadView` in, and set the `delegate` and `dataSource` properties\nof your `MDSpreadView` instance to one of your objects, much like you would do \nfor a `UITableView`.\n\nThen, implement the datasource and delegate methods demonstrated in `MDViewController.m`.\n\nDon't forget to add `QuartzCore.framework` to your project!\n\nNotes\n-----\n\n - An `MDSpreadViewCell` is created just like a `UITableViewCell` is -- try to \n dequeue it from the spread view, otherwise create a new one, then \n configure and return.\n - The table headers are also made of cells, and are loaded just like \n MDTableViewCells are.\n - Works flawlessly with ~500 billion data points (anything bigger makes `- reloadData` hang).\n - The bigger the cells, the faster it scrolls, since less are onscreen at a \n time (especially on older hardware).\n   - ~150 cells gives 60 fps on current hardware, though you can viably push to 600 cells for ~25 fps\n - `MDSpreadView` uses `MDIndexPath`s *instead* of `NSIndexPath` to index cells.\n - Not all APIs are fully implemented yet, and are there for future reference only.\n - `MDSpreadView` also offers an easier way to make cells via `- spreadView:title...`\n and `- spreadView:objectValue...` datasource methods. The cell classes used can be\n changed via the `default...CellClass` quartet of properties.\n - `MDSpreadView` also has support for footer columns and rows.\n - Unlike UITableView, MDSpreadView is not adversely affected by custom cell sizes.\n\nTo Do\n-----\n\n - Programatic scrolling\n - Info Querying\n - Copy-Paste menu support\n - Cell insertion, deletion, and reload\n - Class registration per identifier\n - Better animation between data set transitions\n\nCoding Style Guidelines\n-----------------------\n\nPlease see https://mochidev.com/codestyle\n\nLicense\n-------\n\nCopyright (c) 2014 Dimitri Bouniol, Mochi Development, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software, associated artwork, and documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\n1. The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n2. Neither the name of Mochi Development, Inc. nor the names of its\n contributors or products may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\nMochi Dev, and the Mochi Development logo are copyright Mochi Development, Inc.\n\nAlso, it'd be super awesome if you credited this page in your about screen :)\n\n(We do this for you in [MDAboutController](https://github.com/mochidev/MDAboutControllerDemo)!)\n\nCredits\n-------\n\n- Created by [Dimitri Bouniol](http://twitter.com/dimitribouniol) for [Mochi Development, Inc.](http://mochidev.com/)\n- Contributed to by [Sonny Fazio](https://github.com/sonnyfazio) of [SonsterMedia](https://sonstermedia.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmochidev%2Fmdspreadviewdemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmochidev%2Fmdspreadviewdemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmochidev%2Fmdspreadviewdemo/lists"}