Iphone 如何删除节中的行并隐藏该节?

Iphone 如何删除节中的行并隐藏该节?,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我有一个问题,当我有两个部分时,比如说第x部分和第x部分。截面x有一行,截面y也有一行。如果我删除y部分的第二行,它将删除x部分的行,并保留y部分的行。当我隐藏该部分时,它也会留下一个空间。如果它们是一种隐藏该部分的方法,不会造成混乱,请告诉我一种方法。这里有一些图片,可以让你理解我的问题 这是我用来删除一行的代码 -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyl

我有一个问题,当我有两个部分时,比如说第x部分和第x部分。截面x有一行,截面y也有一行。如果我删除y部分的第二行,它将删除x部分的行,并保留y部分的行。当我隐藏该部分时,它也会留下一个空间。如果它们是一种隐藏该部分的方法,不会造成混乱,请告诉我一种方法。这里有一些图片,可以让你理解我的问题

这是我用来删除一行的代码

-(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];
}

要在删除了属于某个节的所有行后删除该节,请调用
-(void)deleteSections:(NSIndexSet*)sections with RowAnimation:(UITableViewRowAnimation)animation
&从
-(NSInteger)numberOfSections
中少返回一行

您尚未添加任何代码来显示如何从表中删除行(仅从数据中删除行是不够的)。试试像这样的东西-

    [self.tableView beginUpdates];
    [data removeObjectAtIndex:path];
    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];

要在删除了属于某个节的所有行后删除该节,请调用
-(void)deleteSections:(NSIndexSet*)sections with RowAnimation:(UITableViewRowAnimation)animation
&从
-(NSInteger)numberOfSections
中少返回一行

您尚未添加任何代码来显示如何从表中删除行(仅从数据中删除行是不够的)。试试像这样的东西-

    [self.tableView beginUpdates];
    [data removeObjectAtIndex:path];
    [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];

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

一开始我无法解决这个问题,但在@Akshay的帮助下,我的第一个问题是删除它时总是删除顶部的部分我要删除的部分为了解决这个问题,我只需要使用
[mainTableView reloadData]
在返回表达式之前

删除节中的一行,并且当我碰巧删除了第一行下方的一行时,我已经显示了一些图像。我尝试了您的代码,假设我
返回4它给了我一个关于删除节的动画的错误我已经尝试过了,但是我一直得到这个错误
无效更新:节1中的行数无效。更新(1)后现有节中包含的行数必须等于更新(1)前该节中包含的行数,加上或减去从该节中插入或删除的行数(0插入,1删除)。
[self.mainTableView endUpdates]上标记有错误我从来没有说过复制粘贴我的代码会有效。我给了您一个删除节和行的示例。尝试找出发生了什么以及如何修复看到的任何错误。您在
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)中返回了不正确的值节。
删除节中的一行,当我碰巧删除了第一行下方的一行时,我显示了一些图像。我尝试了您的代码,比如我
返回4它给了我一个关于删除节的动画的错误我已经尝试过了,但是我一直得到这个错误
无效更新:节1中的行数无效。更新(1)后现有节中包含的行数必须等于更新(1)前该节中包含的行数,加上或减去从该节中插入或删除的行数(0插入,1删除)。
[self.mainTableView endUpdates]上标记有错误我从来没有说过复制粘贴我的代码会有效。我给了您一个删除节和行的示例。尝试找出发生了什么以及如何修复看到的任何错误。您在
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)节中返回了不正确的值。