在切换UITableView编辑时,Subview无法在自定义UITableViewCell中正确隐藏

时间:2013-08-24 03:17:37

标签: ios uitableview

所以我的应用程序在其左汉堡地下室有一个可编辑且可排序的UITableView:

Editable UITableView

为了确保表格单元格足以在编辑时显示删除按钮和排序拖动句柄,我创建了一个自定义UITableViewCell来处理表格单元格的编辑:

UITableView on edit

编辑时一切正常,但当我点击完成时,不是隐藏删除按钮,而是挂起:

UITableView on done

BookmarkTableViewCell.m中的代码是:

- (void)setEditing:(BOOL)editing animated:(BOOL)animate
{
  [super setEditing:editing animated:animate];

  if (editing) {
    for (UIView * view in self.subviews) {
        if([[[view class] description] isEqualToString:@"UITableViewCellReorderControl"])
        {
            UIView *movedReorderControl = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetMaxX(view.frame), CGRectGetMaxY(view.frame))];
            [movedReorderControl addSubview:view];
            [self addSubview:movedReorderControl];
            CGRect newFrame = movedReorderControl.frame;
            newFrame.origin.x = -35;
            movedReorderControl.frame = newFrame;
        }
    }
    UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 24, 24)];
    [deleteBtn setImage:[UIImage imageNamed:@"icon_delete.png"]];
    [self addSubview:deleteBtn];
  }
}

如果您需要更多细节,请与我们联系。任何解决这个问题的见解都会很棒。谢谢!

1 个答案:

答案 0 :(得分:2)

看起来你正在添加deleteBtn,但你没有删除它。如果编辑为假,你应该找到deleteBtn单元格并从它的超级视图中删除它,以便它消失。