首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改UIButton图像,单击UITableView UIButton

更改UIButton图像,单击UITableView UIButton
EN

Stack Overflow用户
提问于 2014-11-07 07:04:26
回答 4查看 896关注 0票数 0

在UITableView中,cellForRowAtIndexPath用一个图像创建一个按钮。为该按钮编写操作,单击以更改按钮图像。这是密码。

代码语言:javascript
复制
ButtonImage = [UIImage imageNamed:@"work_exe_old.png"];    
myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
myButton.frame = CGRectMake(250,10,34,34);
myButton.tag=22;
[myButton setBackgroundImage:ButtonImage forState:UIControlStateNormal];
[myButton addTarget:self  action:@selector(select_id:)forControlEvents:UIControlEventTouchDown];

- (IBAction)select_id:(id)search
{
    UIButton *tempBtn =(UIButton *) search;
    [tempBtn setImage:[UIImage imageNamed:@"work_exe.png"]    forState:UIControlStateNormal];
}

单击按钮图像changed(work_exe.png).温再次点击相同的按钮意味着图片想要改变(work_exe_old.png),它的类似复选框在表视图中。我怎样才能做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-07 07:17:40

而不是这样做,您可以更好地定制您的代码。检查下面的代码:

代码语言:javascript
复制
ButtonImage = [UIImage imageNamed:@"work_exe.png"];
ButtonImageSelected = [UIImage imageNamed:@"work_exe_old.png"];

myButton = [UIButton buttonWithType:UIButtonTypeCustom];

myButton.frame = CGRectMake(250,10,34,34);

myButton.tag=22;

[myButton setBackgroundImage:ButtonImage forState:UIControlStateNormal];

[myButton setBackgroundImage:ButtonImageSelected forState:UIControlStateSelected];

[myButton addTarget:self action:@selector(select_id:)forControlEvents:UIControlEventTouchDown];

您可以实现这样的选择器方法:

代码语言:javascript
复制
-(IBAction)select_id:(UIButton *) tempBtn {

  [tempBtn setSelected:! tempBtn.selected];
}
票数 1
EN

Stack Overflow用户

发布于 2014-11-07 07:12:21

如果您想通过单击didSelectRowAtIndexPath执行一个操作,那么您必须实现UITableViewCell,然后按照下面的代码对按钮图像进行更改。

代码语言:javascript
复制
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

        switch (i) {
                case 0:
                   if(indexPath.row==0)
                     [tempBtn setImage:[UIImage imageNamed:@"work_exe.png"]    forState:UIControlStateNormal];
}
                 else if (indexPath.row==1)
{
  [tempBtn setImage:[UIImage imageNamed:@"work_exe.png"]    forState:UIControlStateNormal];
}
   else if (indexPath.row==2)
{
[tempBtn setImage:[UIImage imageNamed:@"work_exe.png"]    forState:UIControlStateNormal];
}
.
.
.
 else if (indexPath.row==n)
{
[tempBtn setImage:[UIImage imageNamed:@"work_exeN.png"]    forState:UIControlStateNormal];
}
                    i=1;
                    break;
                case 1:
                    if(indexPath.row==0)
                     [tempBtn setImage:[UIImage imageNamed:@"work_exe0.png"]    forState:UIControlStateNormal];
}
                 else if (indexPath.row==1)
{
  [tempBtn setImage:[UIImage imageNamed:@"work_exe1.png"]    forState:UIControlStateNormal];
}
   else if (indexPath.row==2)
{
[tempBtn setImage:[UIImage imageNamed:@"work_exe2.png"]    forState:UIControlStateNormal];
}
.
.
.
else if (indexPath.row==n)
{
[tempBtn setImage:[UIImage imageNamed:@"work_exeN.png"]    forState:UIControlStateNormal];
}
                    i=0;
                    break;

                default:
                    break;
            }

    [yourtablename reloadData];

注意:在cellForRowAtIndexPath方法之后编写这段代码

票数 0
EN

Stack Overflow用户

发布于 2014-11-07 07:19:49

为每个控件状态设置uibutton的背景图像,

例如:

代码语言:javascript
复制
UIImage *normal = [UIImage imageNamed:@"work_exe.png"];
UIImage *highlighted = [UIImage imageNamed:@"work_exe_old.png"];
UIImage *selected = [UIImage imageNamed:@"work_exe_old.png"];

[myButton setBackgroundImage:normal forState:UIControlStateNormal];
[myButton setBackgroundImage:highlighted forState:UIControlStateHighlighted];
[myButton setBackgroundImage:selected forState:UIControlStateSelected];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26795866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档