我在UITableView中创建了两个自定义按钮。当我点击button1时,另一个按钮应该是可见的。因为我使用以下代码。我正在使用UITableView分组数据类型。
btnSettingButton=[[UIButton alloc]initWithFrame:CGRectMake(265, 50, 22, 22)];
[btnSettingButton setImage:[UIImage imageNamed:@"Settings Icon.png"] forState:UIControlStateNormal];
[btnSettingButton addTarget:self action:@selector(accessoryButtonTapped:withEvent:) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:btnSettingButton];
[btnSettingButton setHidden:YES];
btnUncheck=[[UIButton alloc] initWithFrame:CGRectMake(265, 15, 18, 18)];
//btnUncheck=[UIButton buttonWithType:UIButtonTypeCustom];
btnUncheck.tag=indexPath.row;
[btnUncheck setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
[btnUncheck addTarget:self action:@selector(buttonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:btnUncheck];
[btnUncheck release];
[cell.contentView addSubview:view];
return cell;
- (void)buttonTapped:(id)sender event:(id)event
{
CGPoint touchPosition = [[[event allTouches] anyObject] locationInView:self.tableV];
NSIndexPath *indexPath = [self.tableV indexPathForRowAtPoint:touchPosition];
if(favoriteChecked==NO)
{
[sender setImage:[UIImage imageNamed:@"YES.png"] forState:UIControlStateNormal];
if(indexPath){
[btnSettingButton setHidden:NO];
}
favoriteChecked=YES;
}
else
{
[sender setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
[btnSettingButton setHidden:YES];
favoriteChecked=NO;
}
}
当我使用此代码时,它会显示该部分最后一个单元格的设置按钮。
请指导我如何将clickButton显示到单击的单元格。
答案 0 :(得分:1)
btnSettingButton只有一个全局变量 - 当然它指向你创建的最后一个按钮。
您必须保留对您创建的所有设置按钮的所有引用,然后在buttonTapped函数中获取正确的引用。你可以这样做,例如通过添加对字典的所有引用,使用btnUncheck作为键 - btnUncheck是你在按钮单击函数中得到的发送者,所以你可以从字典中获得相应的btnSettingButton。
答案 1 :(得分:1)
其实我并没有清楚地得到你。
我想你想在tableview的单元格中添加一个按钮。如果单击此按钮,则应更改此图像..
我是对的吗?