<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UIAppearanceContainer",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UIAppearanceContainer"
  },
  "title" : "UIAppearanceContainer"
}
-->

# UIAppearanceContainer

A protocol that a class must adopt to allow appearance customization using the [`UIAppearance`](/documentation/UIKit/UIAppearance) API.

```
@MainActor protocol UIAppearanceContainer : NSObjectProtocol
```

## Overview

To participate in the appearance proxy API, tag appearance property accessor methods in your header with [`UI_APPEARANCE_SELECTOR`](/documentation/UIKit/UI_APPEARANCE_SELECTOR).

Appearance property accessor methods must be of the form:

```swift
func propertyForAxis1(axis1: IntegerType, axis2: IntegerType, axisN: IntegerType) -> PropertyType
func setProperty(property: PropertyType, forAxis1 axis1: IntegerType, axis2: IntegerType)
```

You may have no axes or as many as you like for any property.

The property type may be any standard iOS type: `id`, <doc://com.apple.documentation/documentation/ObjectiveC/NSInteger>, <doc://com.apple.documentation/documentation/ObjectiveC/NSUInteger>, <doc://com.apple.documentation/documentation/CoreFoundation/CGFloat-swift.struct>, <doc://com.apple.documentation/documentation/CoreFoundation/CGPoint>, <doc://com.apple.documentation/documentation/CoreFoundation/CGSize>, <doc://com.apple.documentation/documentation/CoreFoundation/CGRect>, [`UIEdgeInsets`](/documentation/UIKit/UIEdgeInsets) or [`UIOffset`](/documentation/UIKit/UIOffset). Axis parameter values must be either <doc://com.apple.documentation/documentation/ObjectiveC/NSInteger> or <doc://com.apple.documentation/documentation/ObjectiveC/NSUInteger>. UIKit throws an exception if other types are used in the axes.

For example, [`UIBarButtonItem`](/documentation/UIKit/UIBarButtonItem) defines these methods:

- [`setTitlePositionAdjustment(_:for:)`](/documentation/UIKit/UIBarButtonItem/setTitlePositionAdjustment(_:for:))
- [`backButtonBackgroundImage(for:barMetrics:)`](/documentation/UIKit/UIBarButtonItem/backButtonBackgroundImage(for:barMetrics:))
- [`setBackButtonBackgroundImage(_:for:barMetrics:)`](/documentation/UIKit/UIBarButtonItem/setBackButtonBackgroundImage(_:for:barMetrics:))

## Topics

### Constants

[Appearance property selector tag](/documentation/UIKit/appearance-property-selector-tag)

A tag to mark a method that participates in the appearance proxy API.

## Relationships

### Conforming Types

[`UIPopoverPresentationController`](/documentation/UIKit/UIPopoverPresentationController)

[`UITableViewController`](/documentation/UIKit/UITableViewController)

[`UIReferenceLibraryViewController`](/documentation/UIKit/UIReferenceLibraryViewController)

[`UIActivityViewController`](/documentation/UIKit/UIActivityViewController)

[`UILabel`](/documentation/UIKit/UILabel)

[`UIStepper`](/documentation/UIKit/UIStepper)

[`UIPageControl`](/documentation/UIKit/UIPageControl)

[`UICalendarView`](/documentation/UIKit/UICalendarView)

[`UIStandardTextCursorView`](/documentation/UIKit/UIStandardTextCursorView)

[`UITableViewCell`](/documentation/UIKit/UITableViewCell)

[`UITabBar`](/documentation/UIKit/UITabBar)

[`UINavigationController`](/documentation/UIKit/UINavigationController)

[`UIDocumentBrowserViewController`](/documentation/UIKit/UIDocumentBrowserViewController)

[`UIPopoverBackgroundView`](/documentation/UIKit/UIPopoverBackgroundView)

[`UIWebView`](/documentation/UIKit/UIWebView)

[`UIRefreshControl`](/documentation/UIKit/UIRefreshControl)

[`UISearchController`](/documentation/UIKit/UISearchController)

[`UIControl`](/documentation/UIKit/UIControl)

[`UISearchBar`](/documentation/UIKit/UISearchBar)

[`UIInputView`](/documentation/UIKit/UIInputView)

[`UIActivityIndicatorView`](/documentation/UIKit/UIActivityIndicatorView)

[`UICollectionView`](/documentation/UIKit/UICollectionView)

[`UIAlertController`](/documentation/UIKit/UIAlertController)

[`UICollectionViewController`](/documentation/UIKit/UICollectionViewController)

[`UIPopoverController`](/documentation/UIKit/UIPopoverController)

[`UIActionSheet`](/documentation/UIKit/UIActionSheet)

[`UIPresentationController`](/documentation/UIKit/UIPresentationController)

[`UIStackView`](/documentation/UIKit/UIStackView)

[`UIContentUnavailableView`](/documentation/UIKit/UIContentUnavailableView)

[`UIPasteControl`](/documentation/UIKit/UIPasteControl)

[`UITableViewHeaderFooterView`](/documentation/UIKit/UITableViewHeaderFooterView)

[`UIVisualEffectView`](/documentation/UIKit/UIVisualEffectView)

[`UIButton`](/documentation/UIKit/UIButton)

[`UITextField`](/documentation/UIKit/UITextField)

[`UIImagePickerController`](/documentation/UIKit/UIImagePickerController)

[`UIPickerView`](/documentation/UIKit/UIPickerView)

[`UIInputViewController`](/documentation/UIKit/UIInputViewController)

[`UICollectionViewCell`](/documentation/UIKit/UICollectionViewCell)

[`UIListContentView`](/documentation/UIKit/UIListContentView)

[`UIFontPickerViewController`](/documentation/UIKit/UIFontPickerViewController)

[`UIEventAttributionView`](/documentation/UIKit/UIEventAttributionView)

[`UICollectionViewListCell`](/documentation/UIKit/UICollectionViewListCell)

[`UIPageViewController`](/documentation/UIKit/UIPageViewController)

[`UIToolbar`](/documentation/UIKit/UIToolbar)

[`UIView`](/documentation/UIKit/UIView)

[`UIScrollView`](/documentation/UIKit/UIScrollView)

[`UITabBarController`](/documentation/UIKit/UITabBarController)

[`UITextFormattingViewController`](/documentation/UIKit/UITextFormattingViewController)

[`UISearchTextField`](/documentation/UIKit/UISearchTextField)

[`UIProgressView`](/documentation/UIKit/UIProgressView)

[`UITableView`](/documentation/UIKit/UITableView)

[`UIViewController`](/documentation/UIKit/UIViewController)

[`UIDocumentPickerExtensionViewController`](/documentation/UIKit/UIDocumentPickerExtensionViewController)

[`UIWindow`](/documentation/UIKit/UIWindow)

[`UISwitch`](/documentation/UIKit/UISwitch)

[`UICloudSharingController`](/documentation/UIKit/UICloudSharingController)

[`UIBackgroundExtensionView`](/documentation/UIKit/UIBackgroundExtensionView)

[`UIDatePicker`](/documentation/UIKit/UIDatePicker)

[`UIDocumentPickerViewController`](/documentation/UIKit/UIDocumentPickerViewController)

[`UISegmentedControl`](/documentation/UIKit/UISegmentedControl)

[`UIVideoEditorController`](/documentation/UIKit/UIVideoEditorController)

[`UIAlertView`](/documentation/UIKit/UIAlertView)

[`UISearchContainerViewController`](/documentation/UIKit/UISearchContainerViewController)

[`UISheetPresentationController`](/documentation/UIKit/UISheetPresentationController)

[`UIDocumentViewController`](/documentation/UIKit/UIDocumentViewController)

[`UIDocumentMenuViewController`](/documentation/UIKit/UIDocumentMenuViewController)

[`UITextView`](/documentation/UIKit/UITextView)

[`UICollectionReusableView`](/documentation/UIKit/UICollectionReusableView)

[`UIImageView`](/documentation/UIKit/UIImageView)

[`UISlider`](/documentation/UIKit/UISlider)

[`UINavigationBar`](/documentation/UIKit/UINavigationBar)

[`UIColorWell`](/documentation/UIKit/UIColorWell)

[`UISplitViewController`](/documentation/UIKit/UISplitViewController)

[`UIColorPickerViewController`](/documentation/UIKit/UIColorPickerViewController)

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)