1. ホーム
  2. objective-c

[解決済み] uitableviewのbegin updates, end updatesブロックにアニメーションは必要ないのでしょうか?

2023-02-20 01:14:36

質問

私は、カスタムテーブルセルを使用しているUITableViewを持っており、各セルはUIWebViewを持っています。

UIWebViewはロードするのに時間がかかるので、何としてもリロードを避けたい。 いくつかの状況で、私はすべてのセルをロードしていますが、それらの高さは台無しになっています。 したがって、私は "cellForRow" 関数をトリガーせずにテーブルを relayout" する必要があります。

  1. セルを再度読み込むことになるので、私は絶対に reloadData... を使用することはできません。
  2. tableView.setNeedDisplay、setNeedsLayoutなどを試しましたが、どれもテーブルのセルを再配置することはできません。
  3. それが動作した唯一の方法は、beginupdates/endupdatesブロックを呼び出すことです、このブロックはcellForRowを発射せずに私のテーブルをリレーアウトすることができます!しかし、私はアニメーションを望んでいませんでした。しかし、私はアニメーションが必要ではありませんでした。このブロックは、アニメーション効果を生成しますが、私はそれを望んでいない....

どうすれば私の問題を解決できますか?

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

[UIView setAnimationsEnabled:NO];
[tableView beginUpdates];
[tableView endUpdates];
[UIView setAnimationsEnabled:YES];