【发布时间】:2025-12-15 00:25:01
【问题描述】:
我有一个 .system 类型的 UIButton,我正在使用 Swift 4 以编程方式创建它。它有一个标题和一个图像,我在触摸时打开和关闭 isSelected。当我打开它时,图像标题周围添加了一个可爱的彩色背景,但它没有延伸到足以包含图像的程度。这些图片比我能解释的要好得多:
有没有办法让背景进一步延伸,使图标成为它的一部分?我不介意手动更改图标的颜色,但我尝试过的所有操作(titleEdgeInsets、contentEdgeInsets)只是移动了标题和背景而没有实际扩展它。
我更愿意将按钮保留为 .system 按钮而不是 .custom 按钮,并且我喜欢按钮的框架(以及因此触摸区域)大于彩色背景,因为它更容易触摸,我想如果我设置纯色背景图像来模拟效果,我将不得不减少触摸区域以匹配,这是我不想要的。
任何帮助将不胜感激!提前致谢!
编辑:我添加了一个带有 button.layer.borderWidth = 1 的图像来显示按钮的实际框架,以及它与出现在标题周围的 isSelected 背景有何不同。 (灰色是因为在分组的tableView中)
【问题讨论】:
-
我的最佳猜测?
UIButton图像与titleLabel是分开的。我你所拥有的是准确的。也许你可以尝试一些东西。 (1) 有 两张 图片 - 一张用于normal,一张用于isSelected。 (2)子类UIButton,而不是使用它的罐头图像,添加你自己的UIImageView,背景清晰。最后,(3) 滚动你自己的UIButton并完成点击手势。