私のアプリケーションのメインビューとしてUITableView
があります。このUITableView
の内容は、WebからHTTPリクエスト(JSON)を使用して一度に5項目ずつ読み込まれます。このリクエスト部分にはパフォーマンス上の問題はありません。UITableViewのパフォーマンスが低い理由を特定する方法
その後、JSONデータのコンテンツに従ってプログラムでセルが生成されます。たとえば、JSONにセルが1 UILabel
、1 UITextField
および1 UIButton
の場合は、 UITableViewCell
を修正するためにこれらをサブビューとして追加します。セルの初期状態にも問題はありません。
下にスクロールすると、新しいアイテムがウェブから読み込まれ、これがメソッドによって「負荷を増やす」機能がトリガーされます。
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let lastElement = data.jsonArray.count - 2
if indexPath.row == lastElement {
page += 1
getFeed()
}
}
しかし、下にスクロールすると、小さなフリーズとラグが気付くことがあります。これは非常に悪く見えます。なぜこれらの小さな凍結が起こるのか分かりません。
これは今見た目です。私はエミュレータでこれを記録しましたが、実際のデバイスではそれはずっと悪いです。
私はここで何をすべきか分かりません。どんなアドバイスですか?ありがとう。あなたはそれが常にlag.For 経験をするだろうスムーズにあなたは配列に格納 事前&で10-15 JSONオブジェクトをフェッチする必要がある各セルのためにサーバーからデータをフェッチするよう
あなたは 'cellForAtIndexPath:'にコードを投稿できますか? – Proton
非常に長くて複雑です。 –
最後のインデックスで頻繁にスクロールするときに 'getFeed'が複数回呼び出されます。すでに実行中の場合はメソッドを呼び出さないようにする必要があります。 – Mahesh