如何删除部分中的行并隐藏该部分?

时间:2011-08-26 05:05:15

标签: iphone objective-c ios xcode

我有一个问题,当我有两个部分时,请说x和部分。 x部分有一行,也有y部分。如果我删除第y部分y中的一行,它将删除部分x中的行并保留部分y中的行,当我隐藏部分时它也留下一个空格,如果它们是一种隐藏部分的方式搞得一团糟请告诉我这里有一些方法可能会让你理解我的问题

enter image description here

enter image description here

enter image description here

这是我用来删除行的代码

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    int path;
    path = indexPath.row;
    [data removeObjectAtIndex:path];
    if([data count] == 0)
    {
        UIBarButtonItem *leftbutton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editTable)];
        self.navigationItem.rightBarButtonItem = leftbutton;
        [leftbutton release];
        [self.navigationItem.rightBarButtonItem setEnabled:FALSE];
        [mainTableView setHidden:TRUE];
    }
    else
    {
        [self.navigationItem.rightBarButtonItem setEnabled:TRUE];
        [mainTableView setHidden:FALSE];
    }

    [self saveData];
    [mainTableView reloadData];
}

2 个答案:

答案 0 :(得分:1)

要删除属于该部分的所有行,请删除部分,请致电- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation&从- (NSInteger)numberOfSections返回少一个。

您尚未添加任何显示如何从表中删除行的代码(从数据中删除它是不够的)。尝试像 -

这样的东西
    [self.tableView beginUpdates];
    [data removeObjectAtIndex:path];
    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];

HTH,

阿克沙伊

答案 1 :(得分:0)

一开始我无法解决问题但是在@Akshay的帮助下我的第一个问题是删除它时总是删除我正删除的部分顶部以解决问题我只需要更新使用的部分中的行数 返回表达式之前的[mainTableView reloadData];