在UITableView中,cellForRowAtIndexPath用一个图像创建一个按钮。为该按钮编写操作,单击以更改按钮图像。这是密码。
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),它的类似复选框在表视图中。我怎样才能做到这一点?
发布于 2014-11-07 07:17:40
而不是这样做,您可以更好地定制您的代码。检查下面的代码:
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];您可以实现这样的选择器方法:
-(IBAction)select_id:(UIButton *) tempBtn {
[tempBtn setSelected:! tempBtn.selected];
}发布于 2014-11-07 07:12:21
如果您想通过单击didSelectRowAtIndexPath执行一个操作,那么您必须实现UITableViewCell,然后按照下面的代码对按钮图像进行更改。
-(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方法之后编写这段代码
发布于 2014-11-07 07:19:49
为每个控件状态设置uibutton的背景图像,
例如:
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];https://stackoverflow.com/questions/26795866
复制相似问题