1. ホーム
  2. ios

[解決済み] UITableViewの行のアニメーション期間と完了コールバック

2022-12-07 04:35:15

質問

UITableViewの行のアニメーションの継続時間を指定する方法、またはアニメーションが完了したときにコールバックを取得する方法はありますか?

私がしたいことは、アニメーションが完了した後にスクロールインジケータを点滅させることです。その前にフラッシュを実行しても、何もできません。今のところ、私が持っている回避策は、半秒を遅らせることです (これは、デフォルトのアニメーション持続時間のようです)、すなわち。

[self.tableView insertRowsAtIndexPaths:newRows
                      withRowAnimation:UITableViewRowAnimationFade];
[self.tableView performSelector:@selector(flashScrollIndicators)
                     withObject:nil
                     afterDelay:0.5];

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

現在では、このようなことをしたい場合、新しい関数があります。 という関数があります。 :

- (void)performBatchUpdates:(void (^)(void))updates 
                 completion:(void (^)(BOOL finished))completion;

updateクロージャには、beginUpdates()/endUpdatesセクションと同じコードを配置します。そして、補完はすべてのアニメーションの後に実行されます。