---
title: UIPageControl
framework: uikit
role: symbol
role_heading: Class
path: uikit/uipagecontrol
---

# UIPageControl

A control that displays a horizontal series of dots, each of which corresponds to a page in the app’s document or other data-model entity.

## Declaration

```swift
@MainActor class UIPageControl
```

## Mentioned in

Attaching gesture recognizers to UIKit controls Choosing a user interface idiom for your Mac app

## Overview

Overview For an example of a page control, see the Weather app when it’s configured to display information for more than one location. When a user taps a page control to move to the next or previous page, the control sends the valueChanged event for handling by the delegate. The delegate can then evaluate the currentPage property to determine the page to display. The page control advances only one page in either direction. The currently viewed page is indicated by a white dot. Depending on the device, a certain number of dots are displayed on the screen before they’re clipped.

## Topics

### Managing pages

- [currentPage](uikit/uipagecontrol/currentpage.md)
- [numberOfPages](uikit/uipagecontrol/numberofpages.md)
- [hidesForSinglePage](uikit/uipagecontrol/hidesforsinglepage.md)
- [defersCurrentPageDisplay](uikit/uipagecontrol/deferscurrentpagedisplay.md)
- [updateCurrentPageDisplay()](uikit/uipagecontrol/updatecurrentpagedisplay().md)

### Coloring the page indicator

- [pageIndicatorTintColor](uikit/uipagecontrol/pageindicatortintcolor.md)
- [currentPageIndicatorTintColor](uikit/uipagecontrol/currentpageindicatortintcolor.md)

### Managing the indicator images

- [preferredIndicatorImage](uikit/uipagecontrol/preferredindicatorimage.md)
- [indicatorImage(forPage:)](uikit/uipagecontrol/indicatorimage(forpage:).md)
- [setIndicatorImage(_:forPage:)](uikit/uipagecontrol/setindicatorimage(_:forpage:).md)
- [preferredCurrentPageIndicatorImage](uikit/uipagecontrol/preferredcurrentpageindicatorimage.md)
- [currentPageIndicatorImage(forPage:)](uikit/uipagecontrol/currentpageindicatorimage(forpage:).md)
- [setCurrentPageIndicatorImage(_:forPage:)](uikit/uipagecontrol/setcurrentpageindicatorimage(_:forpage:).md)

### Customizing the layout direction

- [direction](uikit/uipagecontrol/direction-swift.property.md)
- [UIPageControl.Direction](uikit/uipagecontrol/direction-swift.enum.md)

### Customizing the background style

- [backgroundStyle](uikit/uipagecontrol/backgroundstyle-swift.property.md)
- [UIPageControl.BackgroundStyle](uikit/uipagecontrol/backgroundstyle-swift.enum.md)

### Customizing the interaction state

- [allowsContinuousInteraction](uikit/uipagecontrol/allowscontinuousinteraction.md)
- [interactionState](uikit/uipagecontrol/interactionstate-swift.property.md)
- [UIPageControl.InteractionState](uikit/uipagecontrol/interactionstate-swift.enum.md)

### Calculating the control size

- [size(forNumberOfPages:)](uikit/uipagecontrol/size(fornumberofpages:).md)

### Configuring page progress

- [progress](uikit/uipagecontrol/progress.md)
- [UIPageControlProgress](uikit/uipagecontrolprogress.md)
- [UIPageControlTimerProgress](uikit/uipagecontroltimerprogress.md)
- [UIPageControlProgressDelegate](uikit/uipagecontrolprogressdelegate.md)
- [UIPageControlTimerProgressDelegate](uikit/uipagecontroltimerprogressdelegate.md)

## Relationships

### Inherits From

- [UIControl](uikit/uicontrol.md)

### Conforms To

- [CALayerDelegate](quartzcore/calayerdelegate.md)
- [CLBodyIdentifiable](corelocation/clbodyidentifiable.md)
- [CMBodyIdentifiable](coremotion/cmbodyidentifiable.md)
- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIAccessibilityIdentification](uikit/uiaccessibilityidentification.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UIAppearance](uikit/uiappearance.md)
- [UIAppearanceContainer](uikit/uiappearancecontainer.md)
- [UIContextMenuInteractionDelegate](uikit/uicontextmenuinteractiondelegate.md)
- [UICoordinateSpace](uikit/uicoordinatespace.md)
- [UIDynamicItem](uikit/uidynamicitem.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIFocusItem](uikit/uifocusitem.md)
- [UIFocusItemContainer](uikit/uifocusitemcontainer.md)
- [UILargeContentViewerItem](uikit/uilargecontentvieweritem.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIPopoverPresentationControllerSourceItem](uikit/uipopoverpresentationcontrollersourceitem.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UITraitChangeObservable](uikit/uitraitchangeobservable-67e94.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Controls

- [Responding to control-based events using target-action](uikit/responding-to-control-based-events-using-target-action.md)
- [UIControl](uikit/uicontrol.md)
- [UIButton](uikit/uibutton.md)
- [UIColorWell](uikit/uicolorwell.md)
- [UIDatePicker](uikit/uidatepicker.md)
- [UISegmentedControl](uikit/uisegmentedcontrol.md)
- [UISlider](uikit/uislider.md)
- [UIStepper](uikit/uistepper.md)
- [UISwitch](uikit/uiswitch.md)
