前言

UIButtonConfiguration是iOS15新增的用于指定按钮及其内容的外观和行为的一种配置。
可以使用它配置和更新按钮,一个按钮配置包含了其他所有可用的自定义选项方法,并且可以作为这些方法的替代。并且可以将配置与这些其他方法结合使用来定制按钮行为和外观,而无需重写自定义的UIButton代码。

详述

  1. 默认配置
  • plainButtonConfiguration:为具有透明背景的按钮配置
  • grayButtonConfiguration:为具有灰色背景的按钮配置
  • tintedButtonConfiguration:为具有着色背景色的按钮配置
  • filledButtonConfiguration:为其背景填充有按钮的色调的按钮配置
  • borderlessButtonConfiguration:为具有无边框样式的按钮配置
  • borderedButtonConfiguration:为具有边框样式的按钮配置
  • borderedTintedButtonConfiguration:为具有着色边框样式的按钮配置
  • borderedProminentButtonConfiguration:为具有突出边框样式的按钮配置
    pPz2jr8.png
  1. 属性相关

    title属性

  • title:按钮标题

  • subtitle:按钮子标题

  • attributedTitle: 按钮富文本标题

  • attributedSubtitle: 按钮富文本子标题

  • titleTextAttributesTransformer:用于按钮状态变化时更新titleTextAttributes的block

  • subtitleTextAttributesTransformer:用于按钮状态变化时更新subtitleTextAttributes的block

  • titlePadding:titleLabel和subtitleLabel的间距

  • titleAlignment:title和subtitle的对齐方式

    image属性

  • image:按钮显示的图片

  • imagePadding:按钮的图像和文本的间距

  • imagePlacement:图片在按钮中的位置

  • imageColorTransformer:用于按钮状态变化时更新imageColor的block

  • preferredSymbolConfigurationForImage:按钮符号图片的配置(UIImageSymbolConfiguration)
    布局属性

  • buttonSize:(UIButtonConfigurationSize)按钮期望大小

  • contentInsets:(NSDirectionalEdgeInsets)按钮内容的内边距

  • setDefaultContentInsets:恢复默认contentInsets
    pPzWY60.png

    颜色属性

  • baseBackgroundColor

  • baseForegroundColor

    背景属性

  • background:(UIBackgroundConfiguration)

  • cornerStyle:(UIButtonConfigurationCornerStyle)

    指示器属性

  • indicator:(UIButtonConfigurationIndicator)

  • indicatorColorTransformer:用于按钮状态变化时更新indicatorColor的block