UnlimitedCarousel
Highly customized Carousel Figure for iOS developed in Swift
Overview
Requirements
- iOS 9.0+
- Xcode 9
- Swift 3.2
- SnapKit && SDWebImage
Installation
CocoaPods
UnlimitedCarousel is avaliable through CocoaPods.
Add a pod entry for UnlimitedCarousel to your Podfile:
pod 'UnlimitedCarousel'
Install InfiniteCarousel into your project:
pod install
Usage
The 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.
import UnlimitedCarousellet carousel = UnlimitedCarousel(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160))
carousel.delegate = self
carousel.dataSource = self
self.view.addSubview(carousel)Just implement dataSource and delegate.
dataSource
Note: number of sections in UnlimitedCarousel is the key to create the infinite effect, 3 or 5 is recommended.
extension ViewController: UnlimitedCarouselDataSource {
func numberOfSections(in carousel: UnlimitedCarousel) -> Int {
return 3
}
func numberOfFigures(for carousel: UnlimitedCarousel) -> Int {
return itemArray.count
}
func titleForFigure(at indexPath: ICIndexPath, in carousel: UnlimitedCarousel) -> String {
return itemArray[indexPath.row].title
}
func picLinkForFigure(at indexPath: ICIndexPath, in carousel: UnlimitedCarousel) -> URL {
return URL(string: itemArray[indexPath.row].picture_url)!
}
}Delegate
extension ViewController: UnlimitedCarouselDelegate {
func infiniteCarousel(_ carousel: UnlimitedCarousel, didSelectFigureAt indexPath: ICIndexPath) {
let item = itemArray[indexPath.row]
let url = item.link
let webVC = WebViewController()
webVC.webUrl = URL(string: url)
webVC.navigationItem.title = item.title
self.navigationController?.pushViewController(webVC, animated: true)
}
}
}Customization
let carousel = UnlimitedCarousel(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 160))
carousel.pageControl.currentPageIndicatorTintColor =
carousel.pageControl.tintColor =
carousel.hidesForSinglePage = Todo
- customized PageControl
- Not longer dependent on
SnapKitandSDWebImage
Change Log
- v1.4.0 stable version 1.0
- v1.4.2 add Optional TitleLabel
Contacts
via email: @NathanLiu
License
UnlimitedCarousel is released under the BSD 2-Clause "Simplified" License. See LICENSE for details.