如何取消隐藏UITableView部分的动画?

时间:2013-07-17 19:31:55

标签: ios objective-c uitableview uisegmentedcontrol

在我目前的UITableView我有3个不同的部分,每个部分有1个单元格。 在第1节和第2节之间,我有一个UISegmentedControl,有两个不同的段。

所以为了给你们一个想法,想想一个计算应用程序,需要知道你正在使用哪个单位,那就是mg / l,或lb's等......

我需要制作第3节(当然还有它的单元格),例如,如果选定的节段为2,则会出现。

If (selectedSegment == 2)
    {
        //SOME CODE TO ANIMATE THE SECTION & CELL IN & OUT IF USER CHANGES SELECTION IN THE SEGMENTED CONTROL.
    } 

尝试在iOS中尝试编辑联系人书籍中的联系人时,可以看到相同的结果。通过按下编辑按钮,您将获得一个漂亮的动画,继续显示其他部分。当你完成后,动画很好地将其他部分带走了(在我的情况下,以防万一用户选择了第2段后来改变主意并回到第2段)。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

为了让您入门,这是如何让它开始工作的一般想法。您可能需要为您的应用稍微调整一下代码。

首先编辑numberOfSections看起来像这样:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    BOOL isSegment2Selected = self.segmentedControl.selectedSegmentIndex == 1;

    if (isSegment2Selected) {

        return 3;

    } else {

        return 2;
    }

}

然后在点击segmentedControl时触发的方法中:

- (void)segmentedControlTapped:(UISegmentedControl *)sender {

    BOOL isSegment2Selected = self.segmentedControl.selectedSegmentIndex == 1;

    if (isSegment2Selected) {

        [self.tableView insertSections:[NSIndexSet indexSetWithIndex:2] withRowAnimation:UITableViewRowAnimationFade];

    } else {

        [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:2] withRowAnimation:UITableViewRowAnimationFade];
    }
}