【问题标题】:UI Button with Image Smaller than Touchable Area图像小于可触摸区域的 UI 按钮
【发布时间】:2011-03-18 17:02:40
【问题描述】:

我没有太多回应,所以我添加了更多信息。

我的按钮不是矩形的,也不是在网格中组织的,所以我需要一种方法来创建看起来像按钮的东西(并显示它已被视觉按下,根据标准 UIButton)但可触摸区域与图像区域。

我使用的是透明 PNG,并且该元素可以正常工作。我已经在 Interface Builder 中添加了按钮,我想知道这是否是问题所在。

但是,如果我更改 imageEdgeInsets,它会扭曲图像显示,这显然不是我想要的。

奇怪的是,如果我增加按钮的尺寸,它不会改变图像,但如果我减少它们就会改变。

我尝试了不同的模式组合(缩放填充等),但无济于事。

我知道有一个图像和背景图像属性,但在 IB 中只有一个。

基本上,我不明白几何是如何工作的,Apple 文档似乎也没有帮助。

当然,我不能是唯一一个尝试这样做的人。任何帮助都将受到热烈欢迎。

非常感谢,

克里斯。

【问题讨论】:

  • 只是一个想法,但在你发疯之前看看是否使用 backgroundImage 而不是图像可能会给你带来你期望的效果。

标签: iphone user-interface uibutton uiimage


【解决方案1】:

尝试将按钮设置为 Aspect Fit。这将用您的图像填充按钮,因此小于按钮大小的图像会在图像周围留出空间。

还将按钮类型设置为自定义。

【讨论】:

  • 按钮“图像”居中,“背景”被拉伸,仍然是一个很好的解决方案
【解决方案2】:

最后,我偶然发现了 Ole Begemann 的 Non-rectangular buttons class。它只是满足我的需要 - 能够创建可触摸区域跟随非矩形图像的可见元素的按钮。

@Helium3 - 谢谢 - 这让我可以使用更大的触控区域,而不是更小的触控区域。

【讨论】:

  • 啊,好的,你想要一个比图像小的按钮触摸区域吗?我使用 UIImages 上的不可见按钮,创建按钮的错觉。
  • 以及如何使用选定状态(较暗的图像)来解决问题