首页 > 解决方案 > 带有标题和图像的 UIButton,系统选择的背景不包括图像

问题描述

我有一个 .system 类型的 UIButton,我正在使用 Swift 4 以编程方式创建它。它有一个标题和一个图像,我在触摸时打开和关闭 isSelected。当我打开它时,图像标题周围添加了一个可爱的彩色背景,但它没有延伸到足以包含图像的程度。这些图片比我能解释的要好得多:

未选中 已选中

有没有办法让背景进一步延伸,所以图标是它的一部分?我不介意手动更改图标的颜色,但是我尝试过的所有内容(titleEdgeInsets、contentEdgeInsets)只是移动了标题和背景,而没有实际扩展它。

我更愿意将按钮保留为 .system 按钮而不是 .custom 按钮,并且我喜欢按钮的框架(以及因此触摸区域)大于彩色背景,因为它更容易触摸,我想如果我设置纯色背景图像来模拟效果,我将不得不减少触摸区域以匹配,这是我不想要的。

非常感激任何的帮助!提前致谢!

编辑:我添加了一个带有 button.layer.borderWidth = 1 的图像来显示按钮的实际框架,以及它与出现在标题周围的 isSelected 背景有何不同。(灰色是因为它在一个分组的tableView中)

在此处输入图像描述

标签: iosswiftuibuttonuikit

解决方案


简短的回答是.system按钮实际上只需要图像或标题,而不是两者。(有关突出您的问题的更全面的矩阵,请参阅此内容

.system不过,对于您的情况,按钮并没有什么特别之处。创建一个.custom按钮和圆形button.layer.cornerRadius以获得角效果。


推荐阅读