在特定单元格上的tableview上隐藏按钮

时间:2013-09-02 07:30:03

标签: iphone ios uitableview

我创建了表格。在每个单元格上,我根据flag数组的值添加按钮。 这是我在单元格上添加按钮的代码

if ([[self.flags objectAtIndex:indexPath.row]
isEqualToString:@"false"])
    {
        UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom];
        [btnFlag addTarget:self
                    action:@selector(flagButtonPressed:)
          forControlEvents:UIControlEventTouchDown];
        btnFlag.backgroundColor = [UIColor redColor];
        [btnFlag setTitle:@"flag" forState:UIControlStateNormal];
        btnFlag.frame = CGRectMake(230, 40, 50, 20);
        [cell addSubview:btnFlag];


    }else if ([[self.flags objectAtIndex:indexPath.row] isEqualToString:@"true"])
{
     UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom];
    [btnFlag setHidden:YES];
    [cell addSubview:btnFlag];
}


-(void)flagButtonPressed:(id)sender {
    UITableViewCell *owningCell = (UITableViewCell*)[sender superview];
        indexPathToCell = [self.cotDetailsTbl indexPathForCell:owningCell];
     //    some stuff    }

在上面的方法中,我调用api,并根据获得的响应,我将flag数组中的值从false替换为true。一旦flag数组中的值变为true,我就重新加载表。

但问题是当我重新加载表时按钮仍然显示为未隐藏

由于

1 个答案:

答案 0 :(得分:0)

在您的其他部分中,您再次使用UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom]来创建新的按钮实例,而您需要现有的UIbutton实例并将其设置为隐藏。

尝试使用以下内容:

在if语句中,为每个按钮分配一个标签

btnFlag.tag = indexPath.row

现在。在其他地方执行以下操作,按标签找到按钮并设置隐藏:

else if ([[self.flags objectAtIndex:indexPath.row] isEqualToString:@"true"])
{
 UIButton *btnFlag = [cell.contentView viewWithTag:indexPath.row];
 [btnFlag setHidden:YES];
}