8

iOS でチャット アプリを作成していますが、すべてのメッセージを表示する UITableView に問題があります。ユーザーがアプリを開いたときに最新のメッセージを表示できるように、ロード時にテーブル ビューを一番下までスクロールする必要があります。

これを行うために、データを更新する関数に次のコードを追加しました。

    NSIndexPath* ipath = [NSIndexPath indexPathForRow: [self.messageOnTimeline numberOfRowsInSection:0]-1 inSection: 0];
    [self.messageOnTimeline scrollToRowAtIndexPath: ipath atScrollPosition: UITableViewScrollPositionTop animated: YES];

テーブルビューにヘッダーを追加するまで、これはうまくいきました。次のコードを追加したところ、アプリを読み込んだときに下にスクロールしなくなりました。

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)];
    return view;
}

誰も理由を知っていますか?

助けてくれて本当にありがとうございます

4

3 に答える 3

7

このコードをあなたに追加してくださいviewDidload

スイフト5

let indexPath = IndexPath(item: <Row Index>, section: <Section Index>)
tableView.reloadRows(at: [indexPath], with: .automatic)

オブジェクティブ C

NSIndexPath *myIndexPath = [NSIndexPath indexPathForRow:AddYourLastIndex inSection:0];
[self.tbl_presentation selectRowAtIndexPath:myIndexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
于 2013-09-09T10:41:20.523 に答える
0

@Darshan Kunjadiyaの答えは正しいです。ストーリーボードでも同じことができます。

tableView を選択 --> ストーリーボード コントロールから [欠落している制約の追加] をクリックします。これにより、tableView と View に制約が追加されます。

それは私がこの問題を解決するのを助けました。参照用に添付されたスクリーンショット。 screen_shot リンク

于 2014-07-28T09:22:28.957 に答える