6

私はこの問題を探しましたが、答えが見つかるとは思いません。クリックすると、選択したセルが新しいセルに情報をプッシュするカスタムセルのテーブルビューがあります。選択したセルを uitableview の一番上にプッシュする方法、またはテーブルビュー全体を埋める方法を誰かが知っているかどうか疑問に思っていました。

私の uitableview は画面の半分しか占有しません。セルが選択されたときに画面の半分だけを占有し、ユーザーがセルをスクロールできることを望みます (それが理にかなっている場合)?

何か提案をいただければ幸いです。私が探しているものを説明するのはやや困難でした。説明が必要な場合は、遠慮なく私に尋ねてください。

4

4 に答える 4

14

cellForRowAtIndexPath では、セルを作成した後にこれを配置する必要があります

    [tableView scrollToRowAtIndexPath:selectedCellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

これは、セルのカスタム高さでもうまくいきました。

于 2011-03-22T18:03:47.967 に答える
0

選択したセルをテーブルビューの一番上に移動するには、選択したセルのインデックスを didSelectRowAtIndexPath のインスタンス変数に格納してから、[tableView reloadData] を呼び出します。

データソースの tableView:cellForRowAtIndexPath: メソッドで、選択したセルがインデックス 0 で返され、選択したセルより前のすべてのセルがインデックス + 1 で返されるようにします。

于 2011-03-18T16:26:31.340 に答える
0

セルを移動する場合は、ここから開始できます。

-(void)moveIndexPathToTop:(NSIndexPath *)pathToMove
{
     [myTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathToMove] withRowAnimation:UITableViewRowAnimationFade];
     NSIndexPath *firstRow = [NSIndexPath indexPathForRow:0 inSection:0];
     [myTable insertRowsAtIndexPaths:[NSArray arrayWithObject:firstRow] withRowAnimation:UITableViewRowAnimationFade];
}

これにより、UITableView が考慮される限り行が移動します。もちろん、データ ソースでも新しい順序を一致させる必要があります。(データの配列の順序を変更するように)

また、これを行うときは、おそらくテーブルを一番上までスクロールしたいと思うでしょう。

于 2011-03-18T16:52:26.553 に答える
0

私のアプリには、クリックすると大きくなるセルがたくさんあります。一度に展開できるセルは 1 つだけです。基本的に、現在選択されている indexPath を追跡し、heightForRowAtIndexPath: で、これが選択された販売かどうかを確認します。そうであれば、より大きな高さを返します。

次に、didSelectRowAtIndexPath: で現在の indexPath を設定し、新しいセルと前のセルの両方をリロードします。これはあなたが探しているものと似ています...うまくいきますか?

于 2011-03-18T14:56:17.133 に答える