用其他图像改变uibutton的图像

时间:2009-10-10 06:08:04

标签: iphone-sdk-3.0

这样我就创建了自定义按钮并设置了图像。我在加载视图中设置了上面的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;

}

}

请查看代码并尝试帮助我。我已经完成了本论坛以及其他论坛发布的所有问题,但无法知道我哪里出错了。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

不要在actionForStar1方法中更改图像,而是在创建按钮时执行此操作:

[starImageBtn5 setBackgroundImage:nonSelectedImage forState:UIControlStateNormal];
[starImageBtn5 setBackgroundImage:selectedImage forState:UIControlStateSelected];