当单元格中出现删除按钮时隐藏sectionindextles

时间:2011-08-08 07:01:38

标签: iphone uitableview

我正在使用SectionIndexTitlesForTableview方法为Tableview设置标题。当我滑动一个单元格时,此标题旁边会出现删除按钮,看起来很奇怪。如何在删除按钮出现时隐藏此indexTitles,并在删除按钮消失时显示。

enter image description here

3 个答案:

答案 0 :(得分:2)

inEditMode方法在要编辑表时隐藏索引

-(void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath{
    [self inEditMode:YES];
}

-(void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath{
    [self inEditMode:NO];
}
//on self.editButtonItem click
-(void)setEditing:(BOOL)editing animated:(BOOL)animated{
    [super setEditing:editing animated:animated];
    [self inEditMode:editing];
}

-(void)inEditMode:(BOOL)inEditMode{
    if (inEditMode) { //hide index while in edit mode
        self.tableView.sectionIndexMinimumDisplayRowCount = NSIntegerMax;
    }else{
         self.tableView.sectionIndexMinimumDisplayRowCount = NSIntegerMin;
    }
    [self.tableView reloadSectionIndexTitles];
}

答案 1 :(得分:1)

这可能会有所帮助

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return [tableView isEditing] ? nil: @[@"A",@"B",@"C"];
}

- (void)setEditing:(BOOL)editing
{
    [super setEditing:editing];
    [self reloadSectionIndexTitles];
}

答案 2 :(得分:0)

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
        {
        _someBoolean = YES;
       [tableView reloadData];
        return YES;
        }

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
            if (editingStyle == UITableViewCellEditingStyleDelete) {
                _someBoolean = NO;
                [tableView reloadData];
            }    
        }


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
        {
                return _someBoolean ? nil : _yourTitlesArray;
        }