这样我就创建了自定义按钮并设置了图像。我在加载视图中设置了上面的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是一个bool变量。
- (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;
}
}
请查看代码并尝试帮助我。我已经完成了本论坛以及其他论坛发布的所有问题,但无法知道我哪里出错了。 提前谢谢。
答案 0 :(得分:1)
不要在actionForStar1方法中更改图像,而是在创建按钮时执行此操作:
[starImageBtn5 setBackgroundImage:nonSelectedImage forState:UIControlStateNormal];
[starImageBtn5 setBackgroundImage:selectedImage forState:UIControlStateSelected];