---
title: UIButtonConfiguration
framework: uikit
role: symbol
role_heading: Class
path: uikit/uibuttonconfiguration
---

# UIButtonConfiguration

A configuration that specifies the appearance and behavior of a button and its contents.

## Declaration

```occ
@interface UIButtonConfiguration : NSObject
```

## Overview

Overview You can configure and update a button with a UIButtonConfiguration. A button configuration contains all the customization options available with other methods, such as setTitle(_:for:), and can serve as a replacement for those methods. Alternatively, you can use a configuration in combination with these other methods and adopt new button behaviors and appearance without rewriting your customized UIButton code.

## Topics

### Creating configurations

- [plainButtonConfiguration](uikit/uibuttonconfiguration/plainbuttonconfiguration.md)
- [grayButtonConfiguration](uikit/uibuttonconfiguration/graybuttonconfiguration.md)
- [tintedButtonConfiguration](uikit/uibuttonconfiguration/tintedbuttonconfiguration.md)
- [filledButtonConfiguration](uikit/uibuttonconfiguration/filledbuttonconfiguration.md)
- [borderlessButtonConfiguration](uikit/uibuttonconfiguration/borderlessbuttonconfiguration.md)
- [borderedButtonConfiguration](uikit/uibuttonconfiguration/borderedbuttonconfiguration.md)
- [borderedTintedButtonConfiguration](uikit/uibuttonconfiguration/borderedtintedbuttonconfiguration.md)
- [borderedProminentButtonConfiguration](uikit/uibuttonconfiguration/borderedprominentbuttonconfiguration.md)
- [glassButtonConfiguration](uikit/uibuttonconfiguration/glassbuttonconfiguration.md)
- [prominentGlassButtonConfiguration](uikit/uibuttonconfiguration/prominentglassbuttonconfiguration.md)
- [clearGlassButtonConfiguration](uikit/uibuttonconfiguration/clearglassbuttonconfiguration.md)
- [prominentClearGlassButtonConfiguration](uikit/uibuttonconfiguration/prominentclearglassbuttonconfiguration.md)
- [updatedConfigurationForButton:](uikit/uibuttonconfiguration/updatedconfigurationforbutton:.md)

### Configuring titles

- [title](uikit/uibuttonconfiguration/title.md)
- [subtitle](uikit/uibuttonconfiguration/subtitle.md)
- [attributedTitle](uikit/uibuttonconfiguration/attributedtitle.md)
- [attributedSubtitle](uikit/uibuttonconfiguration/attributedsubtitle.md)
- [titleTextAttributesTransformer](uikit/uibuttonconfiguration/titletextattributestransformer.md)
- [subtitleTextAttributesTransformer](uikit/uibuttonconfiguration/subtitletextattributestransformer.md)
- [UIConfigurationTextAttributesTransformer](uikit/uiconfigurationtextattributestransformer-swift.struct.md)
- [UIConfigurationTextAttributesTransformer](uikit/uiconfigurationtextattributestransformer-c.typealias.md)
- [titlePadding](uikit/uibuttonconfiguration/titlepadding.md)
- [titleAlignment](uikit/uibuttonconfiguration/titlealignment.md)
- [UIButtonConfigurationTitleAlignment](uikit/uibuttonconfigurationtitlealignment.md)
- [titleLineBreakMode](uikit/uibuttonconfiguration/titlelinebreakmode.md)
- [subtitleLineBreakMode](uikit/uibuttonconfiguration/subtitlelinebreakmode.md)

### Configuring images

- [image](uikit/uibuttonconfiguration/image.md)
- [imagePadding](uikit/uibuttonconfiguration/imagepadding.md)
- [imagePlacement](uikit/uibuttonconfiguration/imageplacement.md)
- [imageColorTransformer](uikit/uibuttonconfiguration/imagecolortransformer.md)
- [preferredSymbolConfigurationForImage](uikit/uibuttonconfiguration/preferredsymbolconfigurationforimage.md)

### Configuring layout

- [buttonSize](uikit/uibuttonconfiguration/buttonsize.md)
- [UIButtonConfigurationSize](uikit/uibuttonconfigurationsize.md)
- [contentInsets](uikit/uibuttonconfiguration/contentinsets.md)
- [setDefaultContentInsets](uikit/uibuttonconfiguration/setdefaultcontentinsets.md)

### Configuring button colors

- [baseBackgroundColor](uikit/uibuttonconfiguration/basebackgroundcolor.md)
- [baseForegroundColor](uikit/uibuttonconfiguration/baseforegroundcolor.md)

### Configuring the button background

- [background](uikit/uibuttonconfiguration/background.md)
- [cornerStyle](uikit/uibuttonconfiguration/cornerstyle.md)
- [UIButtonConfigurationCornerStyle](uikit/uibuttonconfigurationcornerstyle.md)

### Configuring the indicator

- [indicator](uikit/uibuttonconfiguration/indicator.md)
- [UIButtonConfigurationIndicator](uikit/uibuttonconfigurationindicator.md)
- [indicatorColorTransformer](uikit/uibuttonconfiguration/indicatorcolortransformer.md)

### Configuring the activity indicator

- [showsActivityIndicator](uikit/uibuttonconfiguration/showsactivityindicator.md)
- [activityIndicatorColorTransformer](uikit/uibuttonconfiguration/activityindicatorcolortransformer.md)

### Configuring selection behavior

- [automaticallyUpdateForSelection](uikit/uibuttonconfiguration/automaticallyupdateforselection.md)

### Configuring the appearance on macOS

- [macIdiomStyle](uikit/uibuttonconfiguration/macidiomstyle.md)
- [UIButtonConfigurationMacIdiomStyle](uikit/uibuttonconfigurationmacidiomstyle.md)

### Instance Properties

- [symbolContentTransition](uikit/uibuttonconfiguration/symbolcontenttransition.md)

## Relationships

### Inherits From

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

### Conforms To

- [NSCopying](foundation/nscopying.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Creating buttons from a configuration object

- [buttonWithConfiguration:primaryAction:](uikit/uibutton/buttonwithconfiguration:primaryaction:.md)
