【问题标题】:change image of uibutton with other image用其他图像更改 uibutton 的图像
【发布时间】: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;

}

}

请查看代码并尝试帮助我。我已经浏览了此论坛以及其他论坛中发布的所有问题,但不知道我哪里出错了。 提前致谢。

【问题讨论】:

    标签: iphone-sdk-3.0


    【解决方案1】:

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

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

    【讨论】:

    • 你把代码放在哪里了?不要在 actionForStar1 方法中执行此操作,而是在您创建按钮并将其添加到 contentView 的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    相关资源
    最近更新 更多