2

UITableView から 1 レベルのアウトライン ビューを実装する必要があります。子を持つセルには「+」記号が付き、ユーザーがそれをタップすると、その下のセルが下にスライドし、現在選択されている行の子セルが表示されます。セルのスライドが表示され、ユーザーが既に展開されている行の「-」ボタンをタップすると、子セルがスライドして親に戻ります。

グーグルを試しましたが、ポインタが見つかりませんでした。

UITableView をサブクラス化する必要がありますか? または、独自のビュー サブクラスを実装して、そこにあるすべてのものを処理する必要がありますか?

すべての行選択を処理するので、UITableView をサブクラス化する方が簡単だと思いますが、その方法がわかりません。

よろしくお願いします、ラージ

4

2 に答える 2

2

辞書をデータソースとして維持できませんか?辞書の配列を保持する辞書。そして、2つのキーと値のペアを持つ内部辞書:

  1. isExpanded
  2. 子供の情報。

bool isExpandedをチェックすると、行数がわかります。また、ボタンを追加するにはセルをカスタマイズする必要があります。それはあなたのために働きますか?

セルの内容を少し右側に押すと、子セルを区別できます。

于 2010-05-19T05:11:21.307 に答える
1

UITableViewCell をサブクラス化する必要があります

@interface OutlineCell : UITableViewCell

次に、テーブルのViewControllerで

- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath {
    NSString* MyIdentifier = @"MyIdentifier";

    OutlineCell* cell = (OutlineCell*) [tableView dequeueReusableCellWithIdentifier: MyIdentifier];
    if (cell == nil) {
        cell = [[OutlineCell alloc] init];
    }

    // Populate cell data
}

カスタム OutlineCell クラスをファイル所有者として使用して、空の XIB を作成し、UITableViewCell をドラッグして、IB を介してインターフェイスを定義できます。次に、ボタン、ラベルなどを追加します。

編集:セル内に内部テーブルが必要な場合は、定義した UITableViewCell にサブビューを追加して、その中に UITableView を追加する同じアプローチを試してください。

于 2010-05-18T14:35:04.750 に答える