1

UITableViewController であるメイン メニューがあります。電話が縦向きモードの場合、別の viewController に移動し、電話を横向きに回転させ、[戻る] ボタンをタップして UITableViewController に戻ると、約 2 秒の遅れがあります (iPhone 5 の場合)。戻る。遅延はiPhone 4sで約4秒です。

更新: プロファイラーは、システム関数で時間が費やされていることを示しています[UITableViewCell setFrame:]。その機能の時間の大部分は[UIView(AdditionalLayoutSupport) _recursiveLayoutEngineDidChange].

更新 2: さらに掘り下げると、犯人は AutoLayout であることがわかります。AutoLayout をオフにすると、パフォーマンスの問題が完全に解決されます。

4

2 に答える 2

1

速度低下は AutoLayout が原因でした。私のテーブルのセルは、AutoLayout 制約を使用してレイアウトされたカスタム UITableViewCells でした。

AutoLayout をオフにし、古い支柱とスプリング システムを使用すると、速度が完全に修正されました。

于 2013-05-30T21:21:07.863 に答える