1

3 つのセクションを持つ静的セルと 2 つのボタンを持つセグメント化されたコントロールを持つ UITableViewController があります。次の動作を実現したいと思います。

  • ボタン 1 が押されたときセクション 2 を隠す
  • ボタン 2 を押すとセクション 3 が表示されます

これに対する解決策が見つかりません。どんなヒントも役に立ちます。ありがとう。

4

1 に答える 1

1

シンプルです。UITableViewDelegate を設定していることを確認してください。heightForRowAtIndexPath: (およびヘッダーとフッターについても同様) を使用して、セルの高さを 0 に設定することでセルを表示/非表示にできます。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 2) {
        if (self.shouldShowSection2) {
            return 44.0f;
        }else{
            return 0.0f;
        }
    }else if (indexPath.section == 3) {
        if (self.shouldShowSection3) {
            return 44.0f;
        }else{
            return 0.0f;
        }
    }else{
        return 44.0f;
    }
}

次に、IBAction 内にいくつかのロジックを定義して、これらの BOOL をテーブルビューの開始/終了更新の間に変更するだけで、テーブルは必要なセクションを表示/非表示にします。

- (IBAction)toggleSegment:(UISegmentedControl *)sender
{
    [self.tableView beginUpdates];
    //  change boolean conditions for what to show/hide
    [self.tableView endUpdates];
}
于 2013-08-12T19:32:01.613 に答える