0

現在UITableView、3 つの異なるセクションがあり、各セクションには 1 つのセルがあります。セクション 1 とセクション 2 の間にUISegmentedControl、2 つの異なるセグメントを持つ があります。

皆さんにアイデアを提供するために、使用している単位を知る必要がある計算アプリを考えてみてください。それはmg / lかlbかなどです...

たとえば、選択したセグメントが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 に戻った場合に備えて)。

助けてくれてありがとう!

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 に答える