---
title: UITraitEnvironment
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uitraitenvironment
---

# UITraitEnvironment

A set of methods that makes the iOS interface environment available to your app.

## Declaration

```swift
@MainActor protocol UITraitEnvironment : NSObjectProtocol
```

## Mentioned in

Checking the availability of 3D Touch Providing data to the view hierarchy with custom traits

## Overview

Overview The system represents the iOS interface environment with traits, such as horizontal and vertical size class, display scale, and user interface idiom. You access the trait environment of an object that adopts this protocol with the traitCollection property. The trait system propagates values from the top of the view hierarchy downward, to every view controller and view in your app. When you modify a trait at any level using trait overrides, that change affects the modified object and all of its descendants. This hierarchical propagation makes it easy to apply configuration changes to entire subtrees of your interface. For example, setting a trait override on a window scene affects all view controllers and views within that scene. Similarly, setting a trait override on a specific view affects only that view and its subviews. For more information about how traits propagate through the system, see Unleash the UIKit trait system.

## Topics

### Accessing a trait collection

- [traitCollection](uikit/uitraitenvironment/traitcollection.md)

### Responding to a change in the interface environment

- [traitCollectionDidChange(_:)](uikit/uitraitenvironment/traitcollectiondidchange(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [UIActionSheet](uikit/uiactionsheet.md)
- [UIActivityIndicatorView](uikit/uiactivityindicatorview.md)
- [UIActivityViewController](uikit/uiactivityviewcontroller.md)
- [UIAlertController](uikit/uialertcontroller.md)
- [UIAlertView](uikit/uialertview.md)
- [UIBackgroundExtensionView](uikit/uibackgroundextensionview.md)
- [UIButton](uikit/uibutton.md)
- [UICalendarView](uikit/uicalendarview.md)
- [UICloudSharingController](uikit/uicloudsharingcontroller.md)
- [UICollectionReusableView](uikit/uicollectionreusableview.md)
- [UICollectionView](uikit/uicollectionview.md)
- [UICollectionViewCell](uikit/uicollectionviewcell.md)
- [UICollectionViewController](uikit/uicollectionviewcontroller.md)
- [UICollectionViewListCell](uikit/uicollectionviewlistcell.md)
- [UIColorPickerViewController](uikit/uicolorpickerviewcontroller.md)
- [UIColorWell](uikit/uicolorwell.md)
- [UIContentUnavailableView](uikit/uicontentunavailableview.md)
- [UIControl](uikit/uicontrol.md)
- [UIDatePicker](uikit/uidatepicker.md)
- [UIDocumentBrowserViewController](uikit/uidocumentbrowserviewcontroller.md)
- [UIDocumentMenuViewController](uikit/uidocumentmenuviewcontroller.md)
- [UIDocumentPickerExtensionViewController](uikit/uidocumentpickerextensionviewcontroller.md)
- [UIDocumentPickerViewController](uikit/uidocumentpickerviewcontroller.md)
- [UIDocumentViewController](uikit/uidocumentviewcontroller.md)
- [UIEventAttributionView](uikit/uieventattributionview.md)
- [UIFontPickerViewController](uikit/uifontpickerviewcontroller.md)
- [UIImagePickerController](uikit/uiimagepickercontroller.md)
- [UIImageView](uikit/uiimageview.md)
- [UIInputView](uikit/uiinputview.md)
- [UIInputViewController](uikit/uiinputviewcontroller.md)
- [UILabel](uikit/uilabel.md)
- [UIListContentView](uikit/uilistcontentview.md)
- [UINavigationBar](uikit/uinavigationbar.md)
- [UINavigationController](uikit/uinavigationcontroller.md)
- [UIPageControl](uikit/uipagecontrol.md)
- [UIPageViewController](uikit/uipageviewcontroller.md)
- [UIPasteControl](uikit/uipastecontrol.md)
- [UIPickerView](uikit/uipickerview.md)
- [UIPopoverBackgroundView](uikit/uipopoverbackgroundview.md)
- [UIPopoverPresentationController](uikit/uipopoverpresentationcontroller.md)
- [UIPresentationController](uikit/uipresentationcontroller.md)
- [UIProgressView](uikit/uiprogressview.md)
- [UIReferenceLibraryViewController](uikit/uireferencelibraryviewcontroller.md)
- [UIRefreshControl](uikit/uirefreshcontrol.md)
- [UIScreen](uikit/uiscreen.md)
- [UIScrollView](uikit/uiscrollview.md)
- [UISearchBar](uikit/uisearchbar.md)
- [UISearchContainerViewController](uikit/uisearchcontainerviewcontroller.md)
- [UISearchController](uikit/uisearchcontroller.md)
- [UISearchTextField](uikit/uisearchtextfield.md)
- [UISegmentedControl](uikit/uisegmentedcontrol.md)
- [UISheetPresentationController](uikit/uisheetpresentationcontroller.md)
- [UISlider](uikit/uislider.md)
- [UISplitViewController](uikit/uisplitviewcontroller.md)
- [UIStackView](uikit/uistackview.md)
- [UIStandardTextCursorView](uikit/uistandardtextcursorview.md)
- [UIStepper](uikit/uistepper.md)
- [UISwitch](uikit/uiswitch.md)
- [UITabBar](uikit/uitabbar.md)
- [UITabBarController](uikit/uitabbarcontroller.md)
- [UITableView](uikit/uitableview.md)
- [UITableViewCell](uikit/uitableviewcell.md)
- [UITableViewController](uikit/uitableviewcontroller.md)
- [UITableViewHeaderFooterView](uikit/uitableviewheaderfooterview.md)
- [UITextField](uikit/uitextfield.md)
- [UITextFormattingViewController](uikit/uitextformattingviewcontroller.md)
- [UITextView](uikit/uitextview.md)
- [UIToolbar](uikit/uitoolbar.md)
- [UIVideoEditorController](uikit/uivideoeditorcontroller.md)
- [UIView](uikit/uiview.md)
- [UIViewController](uikit/uiviewcontroller.md)
- [UIVisualEffectView](uikit/uivisualeffectview.md)
- [UIWebView](uikit/uiwebview.md)
- [UIWindow](uikit/uiwindow.md)
- [UIWindowScene](uikit/uiwindowscene.md)

## See Also

### Adaptivity

- [UITraitCollection](uikit/uitraitcollection.md)
- [Automatic trait tracking](uikit/automatic-trait-tracking.md)
- [UIAdaptivePresentationControllerDelegate](uikit/uiadaptivepresentationcontrollerdelegate.md)
- [UIContentContainer](uikit/uicontentcontainer.md)
