如何使没有文本的 UIButton 成为其图像的大小?

Posted

技术标签:

【中文标题】如何使没有文本的 UIButton 成为其图像的大小?【英文标题】:How do you make a UIButton with no text be the size of its image? 【发布时间】:2021-10-07 11:00:20 【问题描述】:

我在 Interface Builder 中创建了一个 UIButton,它只包含一个 SF 符号,没有文本。按钮在图像周围绘制插图,这会影响它在约束下的定位方式。如何删除多余的空间,使按钮视图只有 SF Symbol 图像的大小?

【问题讨论】:

这能回答你的问题吗? Change a SF Symbol size inside a UIButton 不幸的是,同样的问题是按钮不采用 SF 符号的固有大小。 【参考方案1】:

具有图像固有大小的按钮

默认情况下,按钮将采用图像的大小。但由于 SF-Symbols 是向量,它们可以缩放到任意大小。每个符号都有一些预定义的尺寸供您选择:

另外,您可以在代码中设置自己的尺寸:

let config = UIImage.SymbolConfiguration(pointSize: 160, weight: .bold, scale: .large)
       
let largeChevronImage = UIImage(systemName: "chevron.right.circle.fill", withConfiguration: config)

button.setImage(largeChevronImage, for: .normal)

添加或删除图像周围的额外空间

某些图像和 SF 符号在其内容周围有一些填充。您可以通过设置ContentEdgeInsets来控制填充的大小

您可以剪裁边界以隐藏超出框架的内容

所有 SF-Symbol 的大小都相同

【讨论】:

以上是关于如何使没有文本的 UIButton 成为其图像的大小?的主要内容,如果未能解决你的问题,请参考以下文章

结合图像制作 UIButton?

如何在保持图像纵横比的同时调整 UIButton 中的图像大小?

如何使 UIButton BOLD 的一些文本

UIButton titleLabel 文本底部到其框架

UIButton - 触摸时保持文本黑色

Swift - 如何使 UIButton 仅在附加的图像上点击交互并忽略透明部分