首页 > 解决方案 > 如何为 UIButton 设置 UIBackgroundConfiguration?

问题描述

我正在努力更改 UIButton 的背景属性。可以使用 Interface Builder 中的“后台配置”设置轻松修改它们:

截屏

但我不明白如何以编程方式设置它们。

例如,我尝试这样做:

UIBackgroundConfiguration * config = [UIBackgroundConfiguration listPlainCellConfiguration];
[config setStrokeColor: UIColor.labelColor];

但是我应该在哪里分配这个“配置”值?对于 UIButton 对象,没有任何类似于 'button.backgroundConfiguration' 属性或任何类似的东西。

注意:UIButton 对象的“配置”属性在代码(Objective C、Mac Catalyst、iOS 15)中不可用,尽管文档声明并附有屏幕截图。很高兴知道为什么会这样。

截屏

标签: iosobjective-cuibuttonmac-catalyst

解决方案


后台配置是 UIButtonConfiguration (按钮的configuration)的一部分。

https://developer.apple.com/documentation/uikit/uibuttonconfiguration/3750780-background?language=objc

这是配置在故事板中创建的按钮的示例:

UIButtonConfiguration * con = self.button.configuration;
[con setTitle: @"Hello"];
UIBackgroundConfiguration * back = con.background;
[back setStrokeColor: UIColor.labelColor];
[back setStrokeWidth: 3];
[back setBackgroundColor: [UIColor redColor]];
self.button.configuration = con;

结果:

在此处输入图像描述


推荐阅读