用其他图像更改 uibutton 的图像
Posted
技术标签:
【中文标题】用其他图像更改 uibutton 的图像【英文标题】:change image of uibutton with other image 【发布时间】:2009-10-10 06:08:04 【问题描述】:这样,我创建了自定义按钮并设置了图像。我在加载视图中为上面的 nonselectedImage 和 selectedImage 设置了图像。加载视图时,未选择的图像可见。当我按下按钮时,该事件被调用,但它无法更改操作方法中设置的图像。
starImageBtn5 = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
starImageBtn5.frame = CGRectMake(231.0, 67.0, 20.0, 20.0);
[starImageBtn5 setBackgroundImage:nonSelectedImage forState:UIControlStateNormal];
[cell.contentView addSubview:starImageBtn5];
[starImageBtn5 addTarget:self action:@selector(actionForStar5) forControlEvents:UIControlEventTouchUpInside];
[starImageBtn5 发布];
这是我尝试更改图像的方法。starOneSelected 是一个布尔变量。
- (void) actionForStar1
if(starOneSelected)
UIImage *image =[UIImage imageNamed:@"star-selected.png"] ;
// [UIImage imageNamed:@"star-nonselected.png"];
[starImageBtn1 setBackgroundImage:image forState:UIControlStateNormal];
//starImageBtn1.currentBackgroundImage= image;
starOneSelected = FALSE;
else
//[nonSelectedImage release];
[starImageBtn1 setBackgroundImage:selectedImage forState:UIControlStateNormal];
//UIButton *test = starImageBtn1.
starOneSelected = TRUE;
请查看代码并尝试帮助我。我已经浏览了此论坛以及其他论坛中发布的所有问题,但不知道我哪里出错了。 提前致谢。
【问题讨论】:
【参考方案1】:不要在 actionForStar1 方法中更改图像,而是在创建按钮时进行:
[starImageBtn5 setBackgroundImage:nonSelectedImage forState:UIControlStateNormal];
[starImageBtn5 setBackgroundImage:selectedImage forState:UIControlStateSelected];
【讨论】:
你把代码放在哪里了?不要在 actionForStar1 方法中执行此操作,而是在您创建按钮并将其添加到 contentView 的位置。以上是关于用其他图像更改 uibutton 的图像的主要内容,如果未能解决你的问题,请参考以下文章
即使在图像被更改或删除后,以编程方式添加的 UIButtons 也会保留背景图像
在 Swift 中按下 uibutton 时更改色调图像颜色