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

标签 ios objective-c uitableview uisegmentedcontrol

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

因此,为了给大家一个想法,想象一个计算应用程序,它需要知道您使用的单位,是毫克/升还是磅等......

仅当所选段为第 2 号段时,我才需要使第 3 节(当然也是单元格)出现。

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

我正在尝试实现与您尝试在 iOS 中编辑通讯录中的联系人时看到的相同结果。通过按编辑按钮,您将获得一个漂亮的动画,该动画继续显示其他部分。完成后,动画会很好地带走附加部分(在我的例子中,以防万一用户选择了第 2 部分,后来又改变主意并返回到第 2 部分)。

谢谢各位的帮助!

最佳答案

为了帮助您入门,这是如何让它发挥作用的总体思路。您可能需要为您的应用稍微调整代码。

首先编辑您的 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];
    }
}

关于ios - 如何取消隐藏 UITableView 部分的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17708650/

相关文章:

ios - Cocos2D。如何给 Sprite 着色?

ios - 如何在 UITableView 中创建单行 View 分隔符

ios - 如何在 UITests 中选择 UITableView 的一部分?

ios - 添加带有披露指示器的 UIVewiTabelCell 链接

ios - 获取不同部分中选定单元格的列表

iphone - 拖回同一位置

ios - 获取上周和上个月的开始和结束日期

ios - 如何在单击三层时设置 UIBarButtonItem 图像

iphone - 在设备中启动项目时出现问题

ios - Objective-C 如何调用outlet?