5

UITableViewCellreuseidentifier= を ivarとして固定しnil、特定の行に対してこのインスタンスを返し、特に を使用してこの行をリロードする[tableView reloadRowsAtIndexPaths:withRowAnimation:]と、行の内容が消えます (または時々ちらつきます)。スクロールして戻ると、再び表示されます。逆に言えば[tableView reloadData]消えない。

  • 行をリロードすると消えるのはなぜですか?
  • テーブル全体をリロードすると、なぜそうならないのですか?

サンプル プロジェクトは次のとおりです: https://github.com/hannesoid/HOTableViewTests

これを iOS 6 でテストしました。この ような方法で UITableViewCell を手動で再利用すること (reuseidentifier と dequeueing を使用しない) は通常は推奨されませんが、非常に静的なシナリオでは、物事が単純化されます。

4

2 に答える 2

1

UITableView は Apple によって最適化されているため、適度に少量のメモリを使用しながらも、セルが画面に表示されたときに優れたパフォーマンスを発揮します。このような非標準的なことを行い、最適化を回避すると、マシン全体が狂ってしまいます。これが私が提案するものです。インスタンス変数として保持している特定の行が 1 つある場合、reuseIdentifier に一意の名前を付けてみませんか? キットに任せましょう。

于 2013-08-23T19:49:22.407 に答える