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

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

《ios – 具有标题和图像的UIButton,系统选择的背景不包括图像》
《ios – 具有标题和图像的UIButton,系统选择的背景不包括图像》

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

我更喜欢将按钮保持为.system按钮而不是.custom按钮,我喜欢按钮的框架(因此触摸区域)比彩色背景更大,因为它更容易触摸,我想如果我设置一个纯色backgroundImage来模拟效果,我将不得不减少匹配的触摸区域,这是我不想要的.

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

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

《ios – 具有标题和图像的UIButton,系统选择的背景不包括图像》

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

但是,对于你的案例,.system按钮并没有什么特别之处.创建一个.custom按钮并圆形button.layer.cornerRadius以获得角落效果.

点赞