0

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

所以为了给你们一个想法,想想一个计算应用程序,它需要知道你使用的是哪个单位,是毫克/升还是磅等......

我需要使第 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)。

谢谢你们的帮助!

4

1 回答 1

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];
    }
}
于 2013-07-17T20:44:47.283 回答