---
title: UIMutableTraits
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uimutabletraits-8l00o
---

# UIMutableTraits

A mutable container of traits.

## Declaration

```occ
@protocol UIMutableTraits <NSObject>
```

## Mentioned in

Providing data to the view hierarchy with custom traits

## Overview

Overview The UIMutableTraits protocol provides read-write access to get and set trait values on an underlying container. UIKit uses this protocol to facilitate working with instances of UITraitCollection, which are immutable and read-only. The UITraitCollection initializer traitCollectionWithTraits: uses an instance of UIMutableTraits, which enables you to set a batch of trait values in one method call. UITraitOverrides conforms to UIMutableTraits, making it easy to set trait overrides on trait environments such as views and view controllers.

## Topics

### Getting and setting trait values

- [accessibilityContrast](uikit/uimutabletraits-8l00o/accessibilitycontrast.md)
- [activeAppearance](uikit/uimutabletraits-8l00o/activeappearance.md)
- [displayGamut](uikit/uimutabletraits-8l00o/displaygamut.md)
- [displayScale](uikit/uimutabletraits-8l00o/displayscale.md)
- [forceTouchCapability](uikit/uimutabletraits-8l00o/forcetouchcapability.md)
- [horizontalSizeClass](uikit/uimutabletraits-8l00o/horizontalsizeclass.md)
- [imageDynamicRange](uikit/uimutabletraits-8l00o/imagedynamicrange.md)
- [layoutDirection](uikit/uimutabletraits-8l00o/layoutdirection.md)
- [legibilityWeight](uikit/uimutabletraits-8l00o/legibilityweight.md)
- [listEnvironment](uikit/uimutabletraits-8l00o/listenvironment.md)
- [preferredContentSizeCategory](uikit/uimutabletraits-8l00o/preferredcontentsizecategory.md)
- [resolvesNaturalAlignmentWithBaseWritingDirection](uikit/uimutabletraits-8l00o/resolvesnaturalalignmentwithbasewritingdirection.md)
- [sceneCaptureState](uikit/uimutabletraits-8l00o/scenecapturestate.md)
- [splitViewControllerLayoutEnvironment](uikit/uimutabletraits-8l00o/splitviewcontrollerlayoutenvironment.md)
- [tabAccessoryEnvironment](uikit/uimutabletraits-8l00o/tabaccessoryenvironment.md)
- [toolbarItemPresentationSize](uikit/uimutabletraits-8l00o/toolbaritempresentationsize.md)
- [typesettingLanguage](uikit/uimutabletraits-8l00o/typesettinglanguage.md)
- [userInterfaceIdiom](uikit/uimutabletraits-8l00o/userinterfaceidiom.md)
- [userInterfaceLevel](uikit/uimutabletraits-8l00o/userinterfacelevel.md)
- [userInterfaceStyle](uikit/uimutabletraits-8l00o/userinterfacestyle.md)
- [verticalSizeClass](uikit/uimutabletraits-8l00o/verticalsizeclass.md)

### Getting and setting trait data

- [objectForTrait:](uikit/uimutabletraits-8l00o/objectfortrait:.md)
- [setObject:forTrait:](uikit/uimutabletraits-8l00o/setobject:fortrait:.md)
- [UIObjectTrait](uikit/uiobjecttrait.md)
- [valueForCGFloatTrait:](uikit/uimutabletraits-8l00o/valueforcgfloattrait:.md)
- [setCGFloatValue:forTrait:](uikit/uimutabletraits-8l00o/setcgfloatvalue:fortrait:.md)
- [UICGFloatTrait](uikit/uicgfloattrait.md)
- [valueForNSIntegerTrait:](uikit/uimutabletraits-8l00o/valuefornsintegertrait:.md)
- [setNSIntegerValue:forTrait:](uikit/uimutabletraits-8l00o/setnsintegervalue:fortrait:.md)
- [UINSIntegerTrait](uikit/uinsintegertrait.md)

### Bridging traits

- [UITraitBridgedEnvironmentKey](uikit/uitraitbridgedenvironmentkey.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Inherited By

- [UITraitOverrides](uikit/uitraitoverrides-c.protocol.md)

## See Also

### Observing and managing traits

- [Automatic trait tracking](uikit/automatic-trait-tracking.md)
- [UITraitCollection](uikit/uitraitcollection.md)
- [UITraitEnvironment](uikit/uitraitenvironment.md)
- [UITraitChangeObservable](uikit/uitraitchangeobservable-7qoet.md)
- [UIAdaptivePresentationControllerDelegate](uikit/uiadaptivepresentationcontrollerdelegate.md)
- [UIContentContainer](uikit/uicontentcontainer.md)
