我创建了表格。在每个单元格上,我根据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,我就重新加载表。
但问题是当我重新加载表时按钮仍然显示为未隐藏
由于
答案 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];
}