Saya punya kebiasaan UITableView
menggunakan UITableViewCell
s. Masing-masing UITableViewCell
memiliki 2 tombol. Mengklik tombol-tombol ini akan mengubah gambar di UIImageView
dalam sel.
Apakah mungkin untuk menyegarkan setiap sel secara terpisah untuk menampilkan gambar baru? Bantuan apa pun dihargai.
objective-c
uitableview
Wisaya iOS
sumber
sumber
[NSArray arrayWithObject:]
.beginUpdates
danendUpdates
tidak perlu.Saya mencoba menelepon
-[UITableView cellForRowAtIndexPath:]
, tetapi itu tidak berhasil. Tapi, berikut ini berfungsi untuk saya misalnya. Akualloc
danrelease
yangNSArray
untuk manajemen memori yang ketat.sumber
Cepat:
sumber
reloadRowsAtIndexPaths:
baik-baik saja, tetapi masih akan memaksaUITableViewDelegate
metode untuk menembak.Pendekatan paling sederhana yang dapat saya bayangkan adalah:
Ini penting untuk memohon Anda
configureCell:
pelaksanaan pada thread utama, karena itu tidak akan berhasil di thread non-UI (cerita yang sama denganreloadData
/reloadRowsAtIndexPaths:
). Terkadang mungkin bermanfaat untuk menambahkan:Layak juga untuk menghindari pekerjaan yang akan dilakukan di luar tampilan yang saat ini terlihat:
sumber
Jika Anda menggunakan TableViewCells khusus, generik
tidak secara efektif menjawab pertanyaan ini kecuali Anda meninggalkan tampilan saat ini dan kembali. Tidak juga jawaban pertama.
Untuk berhasil memuat ulang sel tampilan tabel pertama Anda tanpa beralih tampilan , gunakan kode berikut:
Masukkan metode penyegaran berikut yang memanggil metode di atas sehingga Anda dapat memuat ulang hanya sel atas (atau seluruh tampilan tabel jika diinginkan):
Sekarang Anda memiliki yang diurutkan, di dalam Anda
viewDidLoad
tambahkan yang berikut:Anda sekarang memiliki fitur tabel penyegaran khusus yang akan memuat ulang sel atas. Untuk memuat ulang seluruh tabel, tambahkan
[self.tableView reloadData];
ke metode penyegaran baru Anda.Jika Anda ingin memuat ulang data setiap kali Anda beralih tampilan, terapkan metode ini:
sumber
Swift 3:
sumber
Hanya untuk memperbarui jawaban ini sedikit dengan sintaks literal baru di iOS 6 - Anda dapat menggunakan Paths = @ [indexPath] untuk objek tunggal, atau Paths = @ [indexPath1, indexPath2, ...] untuk beberapa objek.
Secara pribadi, saya telah menemukan sintaks literal untuk array dan kamus sangat bermanfaat dan menghemat waktu. Hanya saja lebih mudah dibaca, untuk satu hal. Dan itu menghilangkan kebutuhan untuk nol di akhir daftar multi-objek, yang selalu menjadi bugaboo pribadi. Kita semua punya kincir angin untuk dimiringkan, ya? ;-)
Hanya berpikir saya akan membuang ini ke dalam campuran. Semoga ini bisa membantu.
sumber
Berikut ini adalah ekstensi UITableView dengan Swift 5:
Telepon dengan
sumber
Saya perlu sel upgrade tetapi saya ingin menutup keyboard. Jika saya gunakan
keyboard menghilang
sumber