ChiliLabs
CHIPageControl
Swift

A set of cool animated page controls written in Swift to replace boring UIPageControl. Mady by @ChiliLabs - https://chililabs.io

Last updated Jul 4, 2026
3.5k
Stars
264
Forks
22
Issues
0
Stars/day
Attention Score
75
Language breakdown
No language data available.
โ–ธ Files click to expand
README

CHIPageControl

CHIPageControl is a set of cool animated page controls to replace boring UIPageControl. We were inspired by Jardson Almeida dribbble shot and implemented a few more page controls.

Made with โค๏ธ by Chili Labs.

Overview

Requirements

  • iOS 8.0+
  • Xcode 8+
  • Swift 3

Installation

Manually

Just add the CHIPageControl folder to your project.

CocoaPods

use CocoaPods with Podfile:

ruby pod 'CHIPageControl', '~> 0.1.3'

individual page control

pod 'CHIPageControl/Aji' pod 'CHIPageControl/Aleppo' pod 'CHIPageControl/Chimayo' pod 'CHIPageControl/Fresno' pod 'CHIPageControl/Jalapeno' pod 'CHIPageControl/Jaloro' pod 'CHIPageControl/Paprika' pod 'CHIPageControl/Puya'

Carthage

use Carthage with Cartfile

github "ChiliLabs/CHIPageControl" ~> 0.1.3

Swift Package Manager

The Swift Package Manager is a tool for managing the distribution of Swift code.

Add the following to your Package.swift file:

dependencies: [     .package(url: "https://github.com/ChiliLabs/CHIPageControl.git", .branch("master")) ]
And then build your project
$ swift build

Usage

๐ŸŽจ Storyboards

Just drop UIView and set its class to be one of CHIPageControls.

๐Ÿ’ป Code

swift
let pageControl = CHIPageControlAji(frame: CGRect(x: 0, y:0, width: 100, height: 20))
pageControl.numberOfPages = 4
pageControl.radius = 4
pageControl.tintColor = .red
pageControl.currentPageTintColor = .green
pageControl.padding = 6

Adding multiple tintColors

swift
// The size of the array needs to match the numberOfPages or it will throw an fatal error
pageControl.tintColors = [UIColor.black, UIColor.yellow, UIColor.black, UIColor.black]

// or

// If it is the first one, it will fill all colors with the selected tintColor and then replace the colors with the desired one pageControl.insertTintColor(UIColor.yellow, position: 1)

Updating progress

swift
//update dynamically
pageControl.progress = 0.5

//set progress with animation pageControl.set(progress: 2, animated: true)

Touch events

You can hear touch events in any of the page indicators.

swift pageControl.enableTouchEvents = true

Delegate

Implement the CHIBasePageControlDelegate to catch touch events.

func didTouch(pager: CHIBasePageControl, index: Int)

Page Controls ๐ŸŒถ๏ธ๐ŸŒถ๏ธ๐ŸŒถ๏ธ

CHIPageControlAji

CHIPageControlAleppo

CHIPageControlChimayo

CHIPageControlFresno

CHIPageControlJalapeno

CHIPageControlJaloro

CHIPageControlPaprika

CHIPageControlPuya

License

CHIPageControl is released under the MIT license. See LICENSE for details.

ยฉ 2026 GitRepoTrend ยท ChiliLabs/CHIPageControl ยท Updated daily from GitHub