私はチャットアプリで作業していますが、最初にデータベースから100メッセージしか取得しません。ユーザーがスクロールすると、データベースからメッセージを取り出し、スクロール位置を維持するために、テーブルをリロードした後、手動でコンテンツオフセットを設定します。スクロール位置は正常ですが、テーブルビューのスクロールは停止します。私は、メッセージが取り出され、テーブルがリロードされたとユーザが感じることを望まない。停止したスクロールを再開する方法。ユーザーが手動でテーブルをスクロールすると、UITableViewのpanGestureRecognizerプロパティを使用して方向と速度を取得します。UITableViewでuserScrollingをシミュレートする
1
A
答えて
0
私が正しく理解している場合は、テーブルビューにページングメカニズムを実装したいと考えています。ユーザーがスクロール・ビューの先頭に到達すると、次のページが取得され、それが大変な経験になります。 私は、ユーザがスクロールしている間に一定の閾値に対してtableView.contentOffset.y
をテストすることを提案しています。 contentOffset.y
がこのしきい値を超えると、次のページを取得します。
UIScrollViewDelegate
メソッドscrollViewDidScroll(_:)
を実装して、contentOffsetを取得してしきい値と比較することができます。 このようにして、データは、ユーザがtableViewの最後に達する前に(ある程度)フェッチされます。
private let fetchThreshold: CGFloat = 80
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y > scrollView.contentSize.height - scrollView.frame.height - fetchThreshold {
/* Fetch next page.
Remember to lock the process so the data won't be fetched multiple times. Use a boolean...
*/
}
}
関連する問題
- 1. Python:OpenPyXLでCSV.DictReaderをシミュレートする
- 2. javascriptでタッチイベントをシミュレートする
- 3. JAVAでシェルコマンドをシミュレートする
- 4. motioneventsでマウスクリックをシミュレートする
- 5. AppHarborでバックグラウンドタスクをシミュレートする
- 6. nexus3でステージリポジトリをシミュレートする
- 7. 雨をシミュレートする
- 8. DIVをシミュレートする
- 9. キーボードイベントをシミュレートする
- 10. サーバエラーをシミュレートする
- 11. Javaでプログラムでマウスドラッグをシミュレートする
- 12. JavaScriptでマウスでスワイプをシミュレートする
- 13. uinputでマルチタッチイベントをシミュレート
- 14. キャンバスでレイヤーをシミュレート
- 15. PCでターゲットをシミュレート
- 16. ASP.NETでレイテンシをシミュレート
- 17. HTMLでフリップライブタイルをシミュレート
- 18. デルファイキャンバスでハイライトペンをシミュレート
- 19. UIViewをuitableviewでロードする
- 20. UITableViewをスタックビューでドロップする
- 21. NSArrayでUITableViewをロードする
- 22. ブルートゥース+シミュレートするマウス
- 23. Vimでタイピングを模倣/シミュレートする
- 24. キャンバスで手描きをシミュレートする
- 25. Ipadでピンチをシミュレートする(ios simulator 4.3)
- 26. Jqueryでキーボードのキーをシミュレートする
- 27. Windowsアプリケーションでセッションをシミュレートする
- 28. Railsでサーバレスポンスをシミュレートする方法は?
- 29. Cでキープレスをシミュレートする方法
- 30. ロボットフレームワークでonblurイベントをシミュレートする方法
はい私はそれがうまく動作するページングを実装しました。問題はスクロールが停止し、ユーザーが再びスクロールしなければならないことだけです。 –
私のチャットアプリケーションでは、このトリックがドリルを行いました(ユーザーがscrollViewの最後に到達したときに次のページデータが既に利用可能であるという条件で)。 – DanielH
私は同じ方法で実装しました。ユーザーがスクロールを終了する前にデータをプリフェッチします。問題は-setContentOffsetだけです。スクロール位置を復元するためにコンテンツオフセットを設定した後、スクロールは停止します。 –