为啥用户点击后按钮图像会恢复?

Posted

技术标签:

【中文标题】为啥用户点击后按钮图像会恢复?【英文标题】:Why does button image revert after user clicks?为什么用户点击后按钮图像会恢复? 【发布时间】:2013-09-12 04:22:19 【问题描述】:

我用这段代码在 viewWillAppear 中更改了我的按钮图像

UIImage *buttonImage = [UIImage imageNamed:[[NSUserDefaults standardUserDefaults] objectForKey:@"button_preference"]];

Button.imageView.image =buttonImage;

但是当它点击它时,它会恢复到 IB 中设置的图像。所以我尝试添加

[leftButton setBackgroundImage:buttonImage forState:UIControlStateNormal];

那么图像一开始就没有改变吗?

【问题讨论】:

您可以尝试将Button.imageView.image更改为[Button setBackgroundImage:buttonImage forState:UIControlStateNormal];您可以使用 setBackgroundImage: forState: 方法将图像设置为按钮。 【参考方案1】:

第一个

Button.imageView.image =buttonImage;

[leftButton setBackgroundImage:buttonImage forState:UIControlStateNormal];

两者都不同,因为第一个将图像设置为按钮的 imageView,第二个将图像设置为按钮的背景,所以我不确定,但问题应该是 button.imageView 的图像覆盖,或者您的第二个代码没有图像(我的意思是 NULL);

我的意见是设置按钮图像,例如

[leftButton setBackgroundImage:buttonImage forState:UIControlStateNormal];

这对你更好。

【讨论】:

好的,所以我从 IB 中删除了图像并将其设为背景图像,并使用代码更改背景图像而不是图像,一切正常。谢谢你【参考方案2】:

使用 UIImage.setImage 方法:

[leftButton setImage:buttonImage forState:UIControlStateNormal];

或在 Swift 中

leftButton.setImage(buttonImage, forState: UIControlState.Normal)

【讨论】:

以上是关于为啥用户点击后按钮图像会恢复?的主要内容,如果未能解决你的问题,请参考以下文章

等待 UIButton 恢复为 UIControlStateNormal

缩放用户上传的图像 onclick 按钮

我的ASP.NET 程序点击按钮为啥没有反应?

当我继承 UIView 时,为啥我不能在图像上绘图?

iOS:如何在静态图像上添加动态按钮?

订阅产品不可恢复,为啥 Apple 要求我设置恢复按钮?