---
title: UIScreen
framework: uikit
role: symbol
role_heading: Class
path: uikit/uiscreen
---

# UIScreen

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

## Declaration

```swift
@MainActor class UIScreen
```

## Mentioned in

Presenting content on a connected display Building a desktop-class iPad app

## Overview

Overview A 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 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 property as a fixed point of reference for any calculations they must make.

## Topics

### Getting the coordinate space

- [coordinateSpace](uikit/uiscreen/coordinatespace.md)
- [fixedCoordinateSpace](uikit/uiscreen/fixedcoordinatespace.md)

### Getting the size and scale

- [bounds](uikit/uiscreen/bounds.md)
- [nativeBounds](uikit/uiscreen/nativebounds.md)
- [nativeScale](uikit/uiscreen/nativescale.md)
- [scale](uikit/uiscreen/scale.md)

### Managing brightness

- [brightness](uikit/uiscreen/brightness.md)
- [wantsSoftwareDimming](uikit/uiscreen/wantssoftwaredimming.md)

### Managing screen modes

- [currentMode](uikit/uiscreen/currentmode.md)
- [preferredMode](uikit/uiscreen/preferredmode.md)
- [availableModes](uikit/uiscreen/availablemodes.md)

### Managing overscan compensation

- [overscanCompensationInsets](uikit/uiscreen/overscancompensationinsets.md)
- [overscanCompensation](uikit/uiscreen/overscancompensation-swift.property.md)
- [UIScreen.OverscanCompensation](uikit/uiscreen/overscancompensation-swift.enum.md)

### Getting the calibrated latency

- [calibratedLatency](uikit/uiscreen/calibratedlatency.md)

### Getting the reference display mode status

- [referenceDisplayModeStatus](uikit/uiscreen/referencedisplaymodestatus-swift.property.md)
- [UIScreen.ReferenceDisplayModeStatus](uikit/uiscreen/referencedisplaymodestatus-swift.enum.md)
- [currentEDRHeadroom](uikit/uiscreen/currentedrheadroom.md)
- [potentialEDRHeadroom](uikit/uiscreen/potentialedrheadroom.md)

### Getting a display link

- [displayLink(withTarget:selector:)](uikit/uiscreen/displaylink(withtarget:selector:).md)
- [maximumFramesPerSecond](uikit/uiscreen/maximumframespersecond.md)

### Capturing a snapshot

- [snapshotView(afterScreenUpdates:)](uikit/uiscreen/snapshotview(afterscreenupdates:).md)

### Detecting screen capture

- [isCaptured](uikit/uiscreen/iscaptured.md)
- [mirrored](uikit/uiscreen/mirrored.md)

### Notifications

- [brightnessDidChangeNotification](uikit/uiscreen/brightnessdidchangenotification.md)
- [modeDidChangeNotification](uikit/uiscreen/modedidchangenotification.md)
- [capturedDidChangeNotification](uikit/uiscreen/captureddidchangenotification.md)
- [referenceDisplayModeStatusDidChangeNotification](uikit/uiscreen/referencedisplaymodestatusdidchangenotification.md)

### Deprecated

- [Deprecated symbols](uikit/uiscreen-deprecated-symbols.md)

### Structures

- [UIScreen.BrightnessDidChangeMessage](uikit/uiscreen/brightnessdidchangemessage.md)
- [UIScreen.CapturedDidChangeMessage](uikit/uiscreen/captureddidchangemessage.md)
- [UIScreen.ModeDidChangeMessage](uikit/uiscreen/modedidchangemessage.md)
- [UIScreen.ReferenceDisplayModeStatusDidChangeMessage](uikit/uiscreen/referencedisplaymodestatusdidchangemessage.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)

## See Also

### Screens

- [Presenting content on a connected display](uikit/presenting-content-on-a-connected-display.md)
- [UIScreenMode](uikit/uiscreenmode.md)
