1. ホーム
  2. ios

[解決済み] iPhoneでUITableViewを表示する前に下までスクロールさせる方法

2022-05-11 17:32:27

質問

私は UITableView があり、高さが可変のセルが配置されています。ビューに押し込まれたときに、テーブルが一番下までスクロールするようにしたいです。

私は現在、以下の関数を持っています。

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[log count]-1 inSection:0];
[self.table scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];

log は、各セルの内容を構成するオブジェクトを含む、変更可能な配列です。

上記のコードは viewDidAppear でうまくいきますが、これはビューが最初に表示されたときにテーブルの一番上が表示され、その後一番下にジャンプしてしまうという残念な副作用があります。私は、もし table view が表示される前に一番下までスクロールされることを希望します。

でスクロールを試したところ viewWillAppearviewDidLoad を追加しましたが、どちらの場合もデータはまだテーブルに読み込まれておらず、どちらも例外を投げます。

私が持っているものが可能なすべてであると教えてくれる場合であっても、どんな指導でも大いに感謝されます。

どのように解決するのですか?

私は

 tableView.setContentOffset(CGPoint(x: 0, y: CGFloat.greatestFiniteMagnitude), animated: false)

は思い通りになります。