<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIScreen",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UIScreen"
  },
  "title" : "UIScreen"
}
-->

# UIScreen

An object that defines the properties associated with a hardware-based display.

```
@MainActor class UIScreen
```

## Overview

A [`UIScreen`](/documentation/UIKit/UIScreen) object provides information about the screens attached to an iOS, iPadOS, or tvOS device. A screen object for an iOS or iPadOS device has information about the integrated display or an attached display. A screen object for a tvOS device represents the television connected to the device. In a compatible iPad or iPhone app running in visionOS, don’t rely on screen-related properties to configure your app.

You don’t create any of these screen objects directly. Instead, fetch the screen object for one of your app’s windows from the [`UIWindowScene`](/documentation/UIKit/UIWindowScene) object that manages the window.

Avoid using screen objects to make decisions about your app’s interface. Use a screen object only as needed to retrieve screen-related information, such as the screen’s bounds rectangle, brightness, and overscan settings. Apps that rely on the screen dimensions can use the object in the [`fixedCoordinateSpace`](/documentation/UIKit/UIScreen/fixedCoordinateSpace) property as a fixed point of reference for any calculations they must make.

## Topics

### Getting the coordinate space

[`coordinateSpace`](/documentation/UIKit/UIScreen/coordinateSpace)

The current coordinate space of the screen.

[`fixedCoordinateSpace`](/documentation/UIKit/UIScreen/fixedCoordinateSpace)

The fixed coordinate space of the screen.

### Getting the size and scale

[`bounds`](/documentation/UIKit/UIScreen/bounds)

The bounding rectangle of the screen, measured in points.

[`nativeBounds`](/documentation/UIKit/UIScreen/nativeBounds)

The bounding rectangle of the physical screen, measured in pixels.

[`nativeScale`](/documentation/UIKit/UIScreen/nativeScale)

The native scale factor for the physical screen.

[`scale`](/documentation/UIKit/UIScreen/scale)

The natural scale factor associated with the screen.

### Managing brightness

[`brightness`](/documentation/UIKit/UIScreen/brightness)

The brightness level of the screen.

[`wantsSoftwareDimming`](/documentation/UIKit/UIScreen/wantsSoftwareDimming)

A Boolean value that indicates whether the screen may be dimmed lower than the hardware is normally capable of by emulating it in software.

### Managing screen modes

[`currentMode`](/documentation/UIKit/UIScreen/currentMode)

The current screen mode associated with the screen.

[`preferredMode`](/documentation/UIKit/UIScreen/preferredMode)

The preferred display mode for the screen.

[`availableModes`](/documentation/UIKit/UIScreen/availableModes)

The display modes that can be associated with the screen.

### Managing overscan compensation

[`overscanCompensationInsets`](/documentation/UIKit/UIScreen/overscanCompensationInsets)

The edge inset values needed to avoid clipping the rectangle.

[`overscanCompensation`](/documentation/UIKit/UIScreen/overscanCompensation-swift.property)

For an external screen, this property sets the desired technique to compensate for overscan.

[`UIScreen.OverscanCompensation`](/documentation/UIKit/UIScreen/OverscanCompensation-swift.enum)

Describes different techniques for compensating for pixel loss at the edge of the screen.

### Getting the calibrated latency

[`calibratedLatency`](/documentation/UIKit/UIScreen/calibratedLatency)

The user-calibrated latency for the current screen.

### Getting the reference display mode status

[`referenceDisplayModeStatus`](/documentation/UIKit/UIScreen/referenceDisplayModeStatus-swift.property)

The status of the screen’s reference display mode.

[`UIScreen.ReferenceDisplayModeStatus`](/documentation/UIKit/UIScreen/ReferenceDisplayModeStatus-swift.enum)

Describes a screen’s reference display mode status.

[`currentEDRHeadroom`](/documentation/UIKit/UIScreen/currentEDRHeadroom)

The screen’s current headroom when displaying extended dynamic range content.

[`potentialEDRHeadroom`](/documentation/UIKit/UIScreen/potentialEDRHeadroom)

The screen’s maximum headroom when displaying extended dynamic range content.

### Getting a display link

[`displayLink(withTarget:selector:)`](/documentation/UIKit/UIScreen/displayLink(withTarget:selector:))

Returns a display link object for the current screen.

[`maximumFramesPerSecond`](/documentation/UIKit/UIScreen/maximumFramesPerSecond)

The maximum number of frames per second a screen can render.

### Capturing a snapshot

[`snapshotView(afterScreenUpdates:)`](/documentation/UIKit/UIScreen/snapshotView(afterScreenUpdates:))

Returns a snapshot view based on the current screen contents.

### Detecting screen capture

[`isCaptured`](/documentation/UIKit/UIScreen/isCaptured)

A Boolean value that indicates whether the system is actively cloning the screen to another destination.

[`mirrored`](/documentation/UIKit/UIScreen/mirrored)

The screen an external display mirrors from.

### Notifications

[`brightnessDidChangeNotification`](/documentation/UIKit/UIScreen/brightnessDidChangeNotification)

A notification that posts when a screen’s brightness changes.

[`modeDidChangeNotification`](/documentation/UIKit/UIScreen/modeDidChangeNotification)

A notification that posts when a screen’s mode changes.

[`capturedDidChangeNotification`](/documentation/UIKit/UIScreen/capturedDidChangeNotification)

A notification that posts when the capture status of a screen changes.

[`referenceDisplayModeStatusDidChangeNotification`](/documentation/UIKit/UIScreen/referenceDisplayModeStatusDidChangeNotification)

A notification that posts when there’s a change to a screen’s reference display mode status.

### Deprecated

[Deprecated symbols](/documentation/UIKit/uiscreen-deprecated-symbols)

Review unsupported symbols and their replacements.



---

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)
