ios - 带有标题和图像的 UIButton,系统选择的背景不包括图像
问题描述
我有一个 .system 类型的 UIButton,我正在使用 Swift 4 以编程方式创建它。它有一个标题和一个图像,我在触摸时打开和关闭 isSelected。当我打开它时,图像标题周围添加了一个可爱的彩色背景,但它没有延伸到足以包含图像的程度。这些图片比我能解释的要好得多:
有没有办法让背景进一步延伸,所以图标是它的一部分?我不介意手动更改图标的颜色,但是我尝试过的所有内容(titleEdgeInsets、contentEdgeInsets)只是移动了标题和背景,而没有实际扩展它。
我更愿意将按钮保留为 .system 按钮而不是 .custom 按钮,并且我喜欢按钮的框架(以及因此触摸区域)大于彩色背景,因为它更容易触摸,我想如果我设置纯色背景图像来模拟效果,我将不得不减少触摸区域以匹配,这是我不想要的。
非常感激任何的帮助!提前致谢!
编辑:我添加了一个带有 button.layer.borderWidth = 1 的图像来显示按钮的实际框架,以及它与出现在标题周围的 isSelected 背景有何不同。(灰色是因为它在一个分组的tableView中)
解决方案
简短的回答是.system
按钮实际上只需要图像或标题,而不是两者。(有关突出您的问题的更全面的矩阵,请参阅此内容)
.system
不过,对于您的情况,按钮并没有什么特别之处。创建一个.custom
按钮和圆形button.layer.cornerRadius
以获得角效果。
推荐阅读
- javascript - CSS/JS:使用 vanilla JS 向下和向上滑动过渡
- php - 覆盖 woocommerce 主题没有效果
- sql - 表中的日期列
- git - 我是否必须将 gh-pages 合并到 master 才能发布带有 dist 文件夹的存储库?
- database - NoSQL (DynamoDB) 数据库设计
- gpflow - 使用 VFE 和 SVGP 模型进行预测的顺序调用
- reactjs - 是否可以使用在导入的 .js 文件中定义的组件?
- linux - Jenkins错误sh:0:无法打开标签:/ sh:0:无法打开脚本:尝试执行SOAPUI命令行时
- arrays - 如何从html表中获取所有数据到控制器
- reactjs - 数据不出现在数据表中