Saya memiliki tampilan yang sesuai yang memuat gambar yang cukup besar di setiap sel dan ketinggian sel bervariasi tergantung pada ukuran gambar. Performa pengguliran lumayan, tetapi terkadang bisa tersendat-sendat.
Saya menemukan tips ini yang saya temukan di blog FieryRobot:
glassy-scrolling-with-uitableview
more-glassy-scrolling-with-uitableview
Apakah ada yang punya tip untuk meningkatkan kinerja scrolling uitableview?
Jawaban:
UITableViewCell
'sdrawRect:
jika mungkin subviews menghindari di semua biaya (atau jika Anda membutuhkan fungsi aksesibilitas standar, tampilan konten inidrawRect:
)UITableViewCell
lapisan Anda buram (hal yang sama berlaku untuk tampilan konten jika Anda memilikinya)UITableView
contoh / dokumentasiUIImage
ssumber
UITableViewCell
, jangan gunakan Nib, tulislah dalam kode sebagai gantinya. Ini jauh lebih cepat daripada memuat file Nib.sumber
Pengembang di balik Tweetie telah menulis secara ekstensif tentang ini dan memiliki beberapa kode yang menunjukkan bagaimana hal itu dilakukan untuk aplikasi itu. Pada dasarnya, dia menganjurkan satu tampilan kustom per sel tabel, dan menggambarnya secara manual (daripada melakukan subview dengan Interface Builder, di antara opsi lainnya).
fast-scrolling-in-tweetie-with-uitableview
Selain itu, Apple telah memperbarui kode sampelnya sendiri untuk TableView dalam tutorial TableViewSuite-nya (mungkin menanggapi ini?)
TableViewSuite
sumber
Pembunuh kinerja # 1 untuk pengguliran UITableView menggambar bayangan pada setiap lapisan tampilan sel, jadi jika kinerja pengguliran penting maka jangan lakukan bayangan kecuali pada dasarnya itu tidak memperlambat utas utama Anda.
Saya pikir ini harus dikatakan karena tidak ada jawaban yang diterima menyebutkan bayangan dan lapisan. : +)
sumber
Masalah apa pun dengan
UITableView
kinerja pengguliran dapat diselesaikan dengan menggunakan teknik yang telah dijelaskan dalam jawaban lain. Namun seringkali kinerja yang lamban disebabkan oleh sesuatu yang secara inheren keliru, atau berulang.Fakta yang
UITableView
menggunakan kembali sel, dan fakta bahwa setiap sel mungkin membutuhkan gambarnya sendiri - bersama-sama membuat solusinya agak rumit. Dari cara pemecahannya secara umum, berikut saya rangkum hal-hal yang harus diperhatikan:[tableView reloaddata]
cellForRowAtIndexPath
, masukkan kode yang akan mengatur data (teks) dari objek model data yang benar dari array.Untuk menghindari masalah, lihat tutorial ini tentang pemuatan lambat gambar di dalam tampilan tabel.
sumber