<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: -",
    "tvOS: 14.0.0 -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UICellConfigurationState-swift.struct",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "s:5UIKit24UICellConfigurationStateV"
  },
  "title" : "UICellConfigurationState"
}
-->

# UICellConfigurationState

A structure that encapsulates a cell’s state.

```
struct UICellConfigurationState
```

## Overview

A cell configuration state encompasses a trait collection along with all of the common states that affect a cell’s appearance — view states like selected, focused, or disabled, and cell states like editing or swiped. A cell configuration state encapsulates the inputs that configure a cell for any possible state or combination of states. You use a cell configuration state with background and content configurations to obtain the default appearance for a specific state.

Typically, you don’t create a configuration state yourself. To obtain a configuration state, override the [`updateConfiguration(using:)`](/documentation/UIKit/UICollectionViewCell/updateConfiguration(using:)) method in your cell subclass and use the state parameter. Outside of this method, you can get a cell’s configuration state by using its [`configurationState`](/documentation/UIKit/UICollectionViewCell/configurationState-4u37h) property.

You can create your own custom states to add to a cell configuration state by defining a custom state key using [`UIConfigurationStateCustomKey`](/documentation/UIKit/UIConfigurationStateCustomKey).

## Topics

### Managing view configuration states

[`var isSelected: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isSelected)

A Boolean value that indicates whether the cell is in a selected state.

[`var isHighlighted: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isHighlighted)

A Boolean value that indicates whether the cell is in a highlighted state.

[`var isFocused: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isFocused)

A Boolean value that indicates whether the cell is in a focused state.

[`var isDisabled: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isDisabled)

A Boolean value that indicates whether the cell is in a disabled state.

[`var isPinned: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isPinned)

A Boolean value that indicates whether the view is in a pinned state.

### Managing cell configuration states

[`var isEditing: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isEditing)

A Boolean value that indicates whether the cell is in editing mode.

[`var isSwiped: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isSwiped)

A Boolean value that indicates whether the cell is in a swiped state.

[`var isExpanded: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isExpanded)

A Boolean value that indicates whether the cell is in an expanded state, such as in an outline.

[`var isReordering: Bool`](/documentation/UIKit/UICellConfigurationState-swift.struct/isReordering)

A Boolean value that indicates whether the cell is reordering.

[`var cellDragState: UICellConfigurationState.DragState`](/documentation/UIKit/UICellConfigurationState-swift.struct/cellDragState)

The cell’s drag state.

[`var cellDropState: UICellConfigurationState.DropState`](/documentation/UIKit/UICellConfigurationState-swift.struct/cellDropState)

The cell’s drop state.

[`enum DragState`](/documentation/UIKit/UICellConfigurationState-swift.struct/DragState)

Constants that describe the cell’s drag state.

[`enum DropState`](/documentation/UIKit/UICellConfigurationState-swift.struct/DropState)

Constants that describe the cell’s drop state.

## Relationships

### Conforms To

[`UIConfigurationState-8d7pd`](/documentation/UIKit/UIConfigurationState-8d7pd)

[`Copyable`](/documentation/Swift/Copyable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Escapable`](/documentation/Swift/Escapable)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`CustomReflectable`](/documentation/Swift/CustomReflectable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

---

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)