{"id":19571314,"url":"https://github.com/orucanil/endlesstableview","last_synced_at":"2025-04-27T03:32:18.024Z","repository":{"id":197658162,"uuid":"52255771","full_name":"orucanil/EndlessTableView","owner":"orucanil","description":"Endless - Infinite \u0026 Double Table Together Parallax Animation \u0026 Auto Scrolling (UITableView)","archived":false,"fork":false,"pushed_at":"2016-04-04T07:20:30.000Z","size":19,"stargazers_count":21,"open_issues_count":0,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2023-10-01T23:56:04.926Z","etag":null,"topics":["auto-scroll","infinite","ios","objective-c","parallax-animation","uitableview"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/annul","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orucanil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-02-22T07:37:08.000Z","updated_at":"2023-10-01T23:56:19.160Z","dependencies_parsed_at":"2023-10-02T00:10:32.756Z","dependency_job_id":null,"html_url":"https://github.com/orucanil/EndlessTableView","commit_stats":null,"previous_names":["orucanil/endlesstableview"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orucanil%2FEndlessTableView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orucanil%2FEndlessTableView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orucanil%2FEndlessTableView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orucanil%2FEndlessTableView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orucanil","download_url":"https://codeload.github.com/orucanil/EndlessTableView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224056805,"owners_count":17248374,"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":["auto-scroll","infinite","ios","objective-c","parallax-animation","uitableview"],"created_at":"2024-11-11T06:18:25.030Z","updated_at":"2024-11-11T06:18:26.214Z","avatar_url":"https://github.com/orucanil.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EndlessTableView\n\nEndless - Infinite \u0026amp; Double Table Together Parallax Animation \u0026amp; Auto Scrolling\n\n\n## Display Visual Examples \n\n----\n![Visual1](http://g.recordit.co/KXg4X6QNYN.gif)\n----\n\n\nInstallation\n--------------\n\nTo use the EndlessTableView class in an app, just drag the EndlessTableView class files (demo files and assets are not needed) into your project.\n\nProperties\n--------------\n\nThe EndlessTableView has the following properties (note: for iOS, UITableView when using properties):\n\n    @property (nonatomic) BOOL enableEndlessScrolling \n\nThe default value is YES.\n\n    @property (nonatomic) BOOL enableAutoScrolling;\n\nThe default value is NO.\n\n    @property (nonatomic) CGFloat autoScrollValue;\n\nThis property can be used to set the table scrolling at a constant speed. A value of 1.0 would scroll the carousel forwards at a rate of one item per second. The autoscroll value can be positive or negative and defaults to 0.0 (stationary). Autoscrolling will stop if the user interacts with the table, and will resume when they stop. The default value is 0.0f.\n\n    @property (nonatomic) CGFloat differenceRateValue;\n\nIf attachedTableView and contentSize of this event of an equal, differenceRateValue processing are taken. The default value is 1.0f.\n\n    @property (nonatomic,weak) EndlessTableView *attachedTableView;\n\nThe default value is nil.\n\n\nHow to use ?\n----------\n\n![Visual4](http://g.recordit.co/ykx1SbnAmZ.gif)\n----\n\n```Objective-C\n#import \"EndlessTableView.h\"\n\n@interface ViewController ()\u003cUITableViewDataSource,UITableViewDelegate\u003e\n\n@property (weak, nonatomic) IBOutlet EndlessTableView *tableViewProduct;\n@property (weak, nonatomic) IBOutlet EndlessTableView *tableViewCampaign;\n\n...\n\n- (void)loadView\n{\n[super loadView];\n\nself.tableViewProduct.attachedTableView = self.tableViewCampaign;\nself.tableViewProduct.enableAutoScrolling = YES;\nself.tableViewProduct.differenceRateValue = 1.3f;\n\n[_tableViewProduct reloadData];\n\n[_tableViewCampaign reloadData];\n\n}\n\n...\n\n#pragma mark - TableView Datasource \u0026 Delegate\n\n- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section\n{\n\nNSInteger numberOfRows = 0;\n\nif (tableView == _tableViewCampaign)\nnumberOfRows = 10;\nelse if (tableView == _tableViewProduct)\nnumberOfRows = 8;\n\nreturn numberOfRows;\n\n}\n\n- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath\n{\n\nUITableViewCell *cell =  [tableView dequeueReusableCellWithIdentifier:@\"EndlessTableViewCell\"];\n\nif (tableView == _tableViewCampaign)\n{\n\n}\nelse if (tableView == _tableViewProduct)\n{\n\n}\nreturn cell;\n\n}\n\n-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath\n{\n\n}\n\n```\n\nOR\n\n```Objective-C\n#import \"EndlessTableView.h\"\n\n@interface ViewController ()\u003cUITableViewDataSource,UITableViewDelegate\u003e\n\n...\n\n- (void)loadView\n{\n[super loadView];\n\nEndlessTableView *tableViewCampaign = [[EndlessTableView alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width / 2, 0.0f, [UIScreen mainScreen].bounds.size.width / 2, [UIScreen mainScreen].bounds.size.height)];\ntableViewCampaign.tag = 0;\ntableViewCampaign.dataSource = self;\ntableViewCampaign.delegate = self;\n\nEndlessTableView *tableViewProduct = [[EndlessTableView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, [UIScreen mainScreen].bounds.size.width / 2, [UIScreen mainScreen].bounds.size.height)];\ntableViewProduct.tag = 1;\ntableViewProduct.dataSource = self;\ntableViewProduct.delegate = self;\n\ntableViewProduct.attachedTableView = tableViewCampaign;\ntableViewProduct.enableAutoScrolling = YES;\ntableViewProduct.differenceRateValue = 1.3f;\n\n}\n\n...\n\n#pragma mark - TableView Datasource \u0026 Delegate\n\n- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section\n{\n\nNSInteger numberOfRows = 0;\n\nif (tableView.tag == 0) // Campaign TableView\nnumberOfRows = 10;\nelse if (tableView.tag == 1) // Product TableView\nnumberOfRows = 8;\n\nreturn numberOfRows;\n\n}\n\n- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath\n{\n\nUITableViewCell *cell =  [tableView dequeueReusableCellWithIdentifier:@\"EndlessTableViewCell\"];\n\nif (tableView.tag == 0) // Campaign TableView\n{\n\n}\nelse if (tableView.tag == 1) // Product TableView\n{\n\n}\nreturn cell;\n\n}\n\n-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath\n{\n\n}\n\n```\n\nBuild and run the project files. Enjoy more examples!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forucanil%2Fendlesstableview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forucanil%2Fendlesstableview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forucanil%2Fendlesstableview/lists"}