按下时更改图像的 UIButton - 但更改图像时效果不佳

Posted

技术标签:

【中文标题】按下时更改图像的 UIButton - 但更改图像时效果不佳【英文标题】:UIButton with changing images when pressed - but unattractive effect when changing them 【发布时间】:2011-08-09 07:05:28 【问题描述】:

我有一个按钮,可以根据我们所处的模式将其图像更改为不同的图像。

图片设置为:[modusBtn setImage:cx forState:UIControlStateNormal];

图片有圆角,按钮类型为“自定义”。

现在按下按钮时,可以在上下边缘背景中看到另一张图像。

真的很奇怪 - 按钮都有圆角 - 但例如当蓝色模式打开并显示蓝色图像并且现在按下蓝色按钮时 - 只能在左两个角看到红色的小边缘。

我已经玩过 IB 中的所有按钮属性设置,但没有运气。

有没有人在更改按钮图像时有过类似的经历?

到目前为止,我所有的按钮图像都是 100% 矩形且没有圆角 - 因此我以前从未经历过这种情况。

非常感谢!

【问题讨论】:

【参考方案1】:

为您的按钮使用此 UIButton 的适当性。

    avatarButton.clipsToBounds = YES;

【讨论】:

也添加这个属性 -> [button sizeToFit];而且,我想知道你在哪里设置图像(在 xib 中或通过代码)。我想你可以将一张图片设置为背景图片。(对不起,如果我错了,我只是猜测!!!)。祝你好运。 感谢您的想法 - 问题已经解决了 - 但现在按钮太大了。顺便说一句,我现在也只是将完全相同的按钮从另一个工作的 ViewControllerA 复制到了 ViewControllerB 的问题,而且真的很奇怪,它只导致与 ViewControllerB 上的前一个按钮相同的问题。在 ViewControllerA 上一切都很好。我不知道这里发生了什么...... 我现在将代码从 setImage: 更改为 setBackgroundImage - 现在一切正常。非常感谢您的提示!【参考方案2】:

每当您为自定义按钮设置图像时,请确保设置

yourButton.backgroundColor=[UIColor clearColor];

当您的按钮在更改状态期间使用默认背景转换时,效果正在发生。

【讨论】:

以上是关于按下时更改图像的 UIButton - 但更改图像时效果不佳的主要内容,如果未能解决你的问题,请参考以下文章

ListItem 应在按下时更改背景颜色、文本和图像的颜色

在 UITableView 顶部按下时,UIButton 不会更改其状态

按下其他按钮后无法更改uibutton的图像

IOS:按下时不要改变颜色UIButton

在 Swift 中按下 uibutton 时更改色调图像颜色

如何从 UITableViewCell 中的自定义 UIButton 中删除触摸延迟