我在UITableView中遇到问题,因为我需要在tableview的每一行上放置一个按钮,如果我单击该按钮,它会一次被选中并且选择就像切换一样。如何实现这一点,请帮我解决这个问题。
以下是我试图解决的代码。我正在cellForRowAtIndexPath
创建按钮,如下所示:
UIButton *Btn = [[UIButton alloc]init];
Btn .frame = CGRectMake(3, 10, 33, 30);
[Btn setImage:[UIImage imageNamed:@"deselect.png"] forState:UIControlStateNormal];
[Btn addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside];
Btn.tag=indexPath.row;
[cell.contentView addSubview:Btn];
和method:
按钮操作:
-(void)method:(UIButton*)sender
{
NSIndexPath *indexpath1 = [NSIndexPath indexPathForRow:sender.tag inSection:0];
Btn = (UIButton *)sender;
//Btn.tag=sender.tag;
[Btn setImage:[UIImage imageNamed:@"select.png"] forState:UIControlStateNormal];
}
答案 0 :(得分:1)
您有一个数组来存储是否选择了单元格的按钮。在cellForRowAtIndexPath
方法中,您应为按钮的2个状态UIControlStateNormal
和UIControlStateSelected
设置2个图像:
[Btn setImage:[UIImage imageNamed:@"select.png"] forState:UIControlStateSelected];
[Btn setImage:[UIImage imageNamed:@"deselect.png"] forState:UIControlStateNormal];
然后在method:
函数中,根据数组中的值,通过Btn.selected
切换按钮的状态。
答案 1 :(得分:0)
UIImage * btnLinkNormal = [UIImage imageNamed:@"select.png"];
[cell.linkButton setImage:btnLinkNormal forState:UIControlStateNormal];
// Add image to button for pressed state
UIImage * btnLinkHighlighted = [UIImage imageNamed:@"deselect.png"];
[cell.linkButton setImage:btnLinkHighlighted forState:UIControlStateHighlighted];