<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIPageControlProgressDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIPageControlProgressDelegate"
  },
  "title" : "UIPageControlProgressDelegate"
}
-->

# UIPageControlProgressDelegate

```
protocol UIPageControlProgressDelegate : NSObjectProtocol
```

## Topics

### Instance Methods

[`func pageControlProgress(UIPageControlProgress, initialProgressForPage: Int) -> Float`](/documentation/UIKit/UIPageControlProgressDelegate/pageControlProgress(_:initialProgressForPage:))

Returns the initial progress (between 0…1) for the specified page. By default, `currentProgress` is set to 0 when the page changes.

[`func pageControlProgressVisibilityDidChange(UIPageControlProgress)`](/documentation/UIKit/UIPageControlProgressDelegate/pageControlProgressVisibilityDidChange(_:))

Called when the page control progress visibility has changed, which could occur when the page control is being interacted
with. The page control progress becomes hidden when the user begins to interact with the page control (when it begins
continuous interaction), and is visible again when the user stops interacting with the control. Observe the page control progress
visibility to pause or resume the paging content.

## Relationships

### Inherited By

[`UIPageControlTimerProgressDelegate`](/documentation/UIKit/UIPageControlTimerProgressDelegate)

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)