具有标题和图像的UIButton,系统选定的背景不包括图像

时间:2018-12-07 17:56:05

标签: ios swift uibutton uikit

我有一个类型为.system的UIButton,它是我用Swift 4编程创建的。它有一个标题和一个图像,并且我在触摸时打开和关闭isSelect。当我打开它时,在图像标题周围添加了一个可爱的彩色背景,但是延伸的程度不足以包含图像。这些图片比我能更好地解释:

Unselected Selected

是否有任何方法可以使背景进一步延伸,从而使图标成为其中的一部分?我不介意手动更改图标的颜色,但是我尝试过的所有内容(titleEdgeInsets,contentEdgeInsets)都只是在未实际扩展标题和背景的情况下移动了它。

我希望将按钮保持为.system按钮而不是.custom按钮,并且我喜欢按钮的框架(因此触摸区域)比彩色背景要大,因为它使触摸起来更容易,我想象如果要设置纯色backgroundImage来模拟效果,则必须减小触摸区域以匹配,这是我不希望的。

任何帮助将不胜感激!预先感谢!

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

enter image description here

1 个答案:

答案 0 :(得分:1)

一个简短的答案是一个.system按钮,实际上只需要一个图像或一个标题,而不是两者。 (See this for a more comprehensive matrix highlighting your issue

对于您的情况,.system按钮确实没有什么特别之处。创建一个.custom按钮并四舍五入button.layer.cornerRadius以获得边角效果。