Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何更改按钮上的背景图像,iOS?_Objective C_Ios_Image_Uibutton - Fatal编程技术网

Objective c 如何更改按钮上的背景图像,iOS?

Objective c 如何更改按钮上的背景图像,iOS?,objective-c,ios,image,uibutton,Objective C,Ios,Image,Uibutton,我在视图控制器上创建了一个按钮,该按钮具有预定义的背景图像。我为这个按钮创建了一个动作和一个出口。我想在用户点击按钮时更改此按钮的背景图像。我该怎么做? 我试着把按钮的动作方法变成这样: snapshotCheckbox.image = [UIImage imageNamed:@"snapshot.png"]; 但是我想这个方法是用于UIMageView的。我怎么能对一个按钮做同样的事情呢? 非常感谢您阅读我的帖子:D一个解决方案是在UIImageView中显示图像,并在UIImageView

我在视图控制器上创建了一个按钮,该按钮具有预定义的背景图像。我为这个按钮创建了一个动作和一个出口。我想在用户点击按钮时更改此按钮的背景图像。我该怎么做? 我试着把按钮的动作方法变成这样:

snapshotCheckbox.image = [UIImage imageNamed:@"snapshot.png"];
但是我想这个方法是用于UIMageView的。我怎么能对一个按钮做同样的事情呢?
非常感谢您阅读我的帖子:D

一个解决方案是在
UIImageView
中显示图像,并在UIImageView顶部放置一个透明的UIButton。在Interface Builder中,您可以将UIButton更改为“自定义”。 这将允许您在处理按下UIButton时触发的操作时轻松更改UIImageView中显示的图像


希望这有帮助。

您可以在viewDidLoad中为按钮的给定状态设置图像:

[myButton setBackgroundImage:[UIImage imageNamed:@"myBackgroundImage.png"] forState:UIControlStateHighlighted];

按钮对象上有
setBackgroundImage:forState:
方法。有关更多信息,请参阅(秒回答)

此外,如果为
UIControlStateHighlighted
状态设置图像,则按下UIButtons时会自动更改图像(尽管仅当用户继续按下按钮时)。

Setbutton

如果在单击时需要图像

[snapshotCheckbox setImage:[UIImage imageNamed:@"snapshot.png"]  forState:UIControlStateHighlighted];
或者如果您在选择图像后想要它

[snapshotCheckbox setImage:[UIImage imageNamed:@"snapshot.png"] forState:UIControlStateSelected];
在onclick函数中提到 作为

snapshotCheckbox.Selected=YES;

按钮有两个
属性
图像
背景图像

对于
设置图像
使用

button.currentImage = image (or) 
[button setImage:image   ForState:UIControlStateNormal];
button.currentBackgroundImage = image (or) 
[button setBackgroundImage:image  ForState:UIControlStateNormal];
对于
设置背景图像
使用

button.currentImage = image (or) 
[button setImage:image   ForState:UIControlStateNormal];
button.currentBackgroundImage = image (or) 
[button setBackgroundImage:image  ForState:UIControlStateNormal];

首先将按钮的类型设置为

button = [UIButton buttonWithType :UIButtonTypeCustom];
然后使用

 [button setImage:[UIImage imageNamed:@"imagename.type"]   ForState:UIControlStateNormal];

要在按钮上设置图像,只需在Main.storyboard中按下要将图像设置为的按钮,然后在右侧的实用程序栏中,按下属性检查器并将背景设置为所需的图像!确保您在左侧的支持文件中有所需的图片。

这是否也能保证分辨率?例如,它会加载吗myBackgroundImage@2x.png基于分辨率?UIImage imageNamed documentation:在运行iOS 4或更高版本的设备上,如果设备的屏幕比例为1.0,则行为相同。如果屏幕的比例为2.0,此方法首先搜索具有相同文件名并附加@2x后缀的图像文件。例如,如果文件名为button,它首先搜索button@2x. 如果找到2x,则加载该图像并将返回的UIImage对象的scale属性设置为2.0。否则,它将加载未修改的文件名并将“缩放”特性设置为1.0。