viewの開始位置がどんどん下に下がっていくのですが…
答え:待ち時間を設定するには、awaitを使わないといけない
以下のようなコードを入れていたんだけど
.refreshable{
DispatchQueue.global().async {
sleep(2)
}
}
処理も何もなし。たったこれだけ。
PulltoRefreshを連発すると、viewの開始位置がどんどん下になっていく。。。
つまり、画面上部に空白が入っていく状態。
色々調べてみると、このsleepってのがいけないらしい。
try await Task.sleep(nanoseconds: 1000000000) などで解決
ようするに、時間を止める時には、sleepはいけないらしい。
.refreshableは非同期なので、非同期で時間を止めるやつを使う必要があって、sleepは同期的なブロッキングなので使うべきじゃないとかなんとか。
アプリケーションのUI応答性が損なわれて、想定と違う動きを発生させるのだって。
今後忘れた時のためのメモとして記録