{"id":15037260,"url":"https://github.com/whatthenathan/unlimitedcarousel","last_synced_at":"2026-01-28T22:33:50.849Z","repository":{"id":56925411,"uuid":"120165822","full_name":"WhatTheNathan/UnlimitedCarousel","owner":"WhatTheNathan","description":"🍂 Highly customized Carousel Figure for iOS developed in Swift","archived":false,"fork":false,"pushed_at":"2018-06-06T15:47:53.000Z","size":19669,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-20T04:48:25.627Z","etag":null,"topics":["cocoapods","framework","swift3"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WhatTheNathan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-04T07:54:41.000Z","updated_at":"2020-08-06T06:13:50.000Z","dependencies_parsed_at":"2022-08-21T05:20:56.036Z","dependency_job_id":null,"html_url":"https://github.com/WhatTheNathan/UnlimitedCarousel","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatTheNathan%2FUnlimitedCarousel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatTheNathan%2FUnlimitedCarousel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatTheNathan%2FUnlimitedCarousel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatTheNathan%2FUnlimitedCarousel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WhatTheNathan","download_url":"https://codeload.github.com/WhatTheNathan/UnlimitedCarousel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243402682,"owners_count":20285278,"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":["cocoapods","framework","swift3"],"created_at":"2024-09-24T20:34:01.587Z","updated_at":"2026-01-28T22:33:50.813Z","avatar_url":"https://github.com/WhatTheNathan.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UnlimitedCarousel\n\n[![Version](https://img.shields.io/cocoapods/v/UnlimitedCarousel.svg?style=flat)](http://cocoapods.org/pods/UnlimitedCarousel)\n[![License](https://img.shields.io/cocoapods/l/UnlimitedCarousel.svg?style=flat)](http://cocoapods.org/pods/UnlimitedCarousel)\n[![Language](https://img.shields.io/badge/language-Swift-orange.svg?style=flat)]()\n[![Platform](https://img.shields.io/cocoapods/p/UnlimitedCarousel.svg?style=flat)](http://cocoapods.org/pods/UnlimitedCarousel)\n[![](https://img.shields.io/github/stars/WhatTheNathan/UnlimitedCarousel.svg?style=social\u0026label=Star)](#)\n\n\nHighly customized Carousel Figure for iOS developed in Swift\n\n## Overview\n\n## Requirements\n\n* iOS 9.0+\n* Xcode 9\n* Swift 3.2\n* SnapKit \u0026\u0026 SDWebImage\n\n## Installation\n\n### CocoaPods\n\n`UnlimitedCarousel` is avaliable through CocoaPods. \n\nAdd a pod entry for `UnlimitedCarousel` to your Podfile:\n\n```\npod 'UnlimitedCarousel'\n```\n\nInstall InfiniteCarousel into your project:\n\n```\npod install\n```\n\n## Usage\n\nThe only thing you need to do is import `UnlimitedCarousel`, create an instance and add it to your `View` via code or StoryBoard, and conform to it's datasource and delegate.\n\n```swift\nimport UnlimitedCarousel\n```\n\n```swift\nlet carousel = UnlimitedCarousel(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160))\ncarousel.delegate = self\ncarousel.dataSource = self\nself.view.addSubview(carousel)\n```\n\nJust implement dataSource and delegate.\n\n### dataSource\n\n**Note: number of sections in UnlimitedCarousel is the key to create the infinite effect, 3 or 5 is recommended**.\n\n```swift\nextension ViewController: UnlimitedCarouselDataSource {\n    func numberOfSections(in carousel: UnlimitedCarousel) -\u003e Int {\n        return 3\n    }\n    \n    func numberOfFigures(for carousel: UnlimitedCarousel) -\u003e Int {\n        return itemArray.count\n    }\n    \n    func titleForFigure(at indexPath: ICIndexPath, in carousel: UnlimitedCarousel) -\u003e String {\n        return itemArray[indexPath.row].title\n    }\n    \n    func picLinkForFigure(at indexPath: ICIndexPath, in carousel: UnlimitedCarousel) -\u003e URL {\n        return URL(string: itemArray[indexPath.row].picture_url)!\n    }\n}\n```\n\n### Delegate\n\n```swift\nextension ViewController: UnlimitedCarouselDelegate {\n    func infiniteCarousel(_ carousel: UnlimitedCarousel, didSelectFigureAt indexPath: ICIndexPath) {\n        let item = itemArray[indexPath.row]\n        let url = item.link\n        let webVC = WebViewController()\n        webVC.webUrl = URL(string: url)\n        webVC.navigationItem.title = item.title\n        self.navigationController?.pushViewController(webVC, animated: true)\n        }\n    }\n}\n```\n\n## Customization\n\n```swift\nlet carousel = UnlimitedCarousel(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160))\ncarousel.pageControl.currentPageIndicatorTintColor = \ncarousel.pageControl.tintColor = \ncarousel.hidesForSinglePage = \n\n// titleLabel\ncarousel.isTitleHidden = false // Default is true\ncarousel.config = self\n\nextension ViewController: TitleLabelConfig {\n    func fontForTitleLabel() -\u003e UIFont? {\n        return UIFont.systemFont(ofSize: 14, weight: UIFontWeightSemibold)\n    }\n\n    func colorForTitleLabel() -\u003e UIColor? {\n        return UIColor.blue\n    }\n\n    func backgroundColorForTitleLabel() -\u003e UIColor? {\n        return UIColor.brown\n    }\n}\n```\n\n## Todo\n\n- [ ] customized PageControl\n- [ ] Not longer dependent on `SnapKit` and `SDWebImage`\n\n## Change Log\n\n* v1.4.0 stable version 1.0\n* v1.4.2 add Optional TitleLabel\n\n## Contacts\n\nvia email: [@NathanLiu](http://nathanliuyolo@gmail.com)\n\n## License\n\n`UnlimitedCarousel` is released under the [BSD 2-Clause \"Simplified\" License](LICENSE). See LICENSE for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatthenathan%2Funlimitedcarousel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhatthenathan%2Funlimitedcarousel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatthenathan%2Funlimitedcarousel/lists"}