Page controls

On this page3 sections

Best practices

Use page controls to represent movement between an ordered list of pages.

Center a page control at the bottom of the view or window.

Customizing indicators

Make sure custom indicator images are simple and clear.

Customize the default indicator image only when it enhances the page control’s overall meaning.

Avoid using more than two different indicator images in a page control.

Avoid coloring indicator images.

Platform considerations

iOS, iPadOS

Avoid animating page transitions during scrubbing.

  • Automatic — Displays the background only when people interact with the control. Use this style when the page control isn’t the primary navigational element in the UI.

  • Prominent — Always displays the background. Use this style only when the control is the primary navigational control in the screen.

  • Minimal — Never displays the background. Use this style when you just want to show the position of the current page in the list and you don’t need to provide visual feedback during scrubbing.

Avoid supporting the scrubber when you use the minimal background style.

tvOS

Use page controls on collections of full-screen pages.

watchOS

Use vertical pagination to separate multiple views into distinct, purposeful pages.

Consider limiting the content of an individual page to a single screen height.


For the complete guidance, including worked examples and illustrations, see the canonical page: https://developer.apple.com/design/human-interface-guidelines/page-controls

Apple HIG text and imagery are © Apple Inc. This page is a structured index of Apple’s canonical documentation (snapshot 2025-02-02), provided for quick reference and AI-agent consumption — it isn’t affiliated with or endorsed by Apple. Read the original at developer.apple.com (opens in new tab).

Get HIG guidance in your AI

Install HIG Doctor and get expert Apple design guidance directly in Claude Code.

npx skills add raintree-technology/hig-doctor
Email updates aren't configured on this deployment yet. Follow the GitHub repo (opens in new tab) for updates.