Itu tergantung pada kebutuhan. Bagaimana alur aplikasi menentukan jenis UI yang akan diintegrasikan ke dalam aplikasi.
Orang terutama menggunakan UICollectionview
untuk membuat jenis UI dengan beberapa gambar yang ditampilkan dalam kisi. Ini akan menggunakan logika yang kompleks UITableView
, tetapi denganUICollectionview
, itu akan mudah.
Saat menggunakan UICollectionview
, Anda tidak perlu mengatur tombol dengan tag atau hal lain dengan mendapatkan nilai item yang dipilih. Anda cukup masuk -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
dan masuk UITableViewDelegate
:
`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`
Anda mendapatkan baris yang dipilih, bukan item, jadi untuk membuat kisi atau item yang dimodifikasi, gunakan UICollectionview
yang terbaik.
Untuk detail daftar setiap item, orang menggunakan UITableView
karena menunjukkan lebih banyak info pada setiap item.
Apple Docs:
Referensi Kelas UICollectionView
Kelas UICollectionView mengelola kumpulan item data yang dipesan dan menyajikannya menggunakan tata letak yang dapat disesuaikan. Tampilan kumpulan menyediakan fungsi umum yang sama seperti tampilan tabel kecuali bahwa tampilan kumpulan dapat mendukung lebih dari sekadar tata letak kolom tunggal. Tampilan koleksi mendukung tata letak yang dapat disesuaikan yang dapat digunakan untuk mengimplementasikan kisi multi-kolom, tata letak berubin, tata letak melingkar, dan banyak lagi. Anda bahkan dapat mengubah tata letak tampilan koleksi secara dinamis jika Anda mau.
Referensi Kelas UITableView
Tampilan tabel menampilkan daftar item dalam satu kolom. UITableView adalah subkelas dari UIScrollView, yang memungkinkan pengguna untuk menggulir tabel, meskipun UITableView hanya mengizinkan pengguliran vertikal. Sel yang terdiri dari item individual pada tabel adalah objek UITableViewCell; UITableView menggunakan objek ini untuk menggambar baris tabel yang terlihat. Sel memiliki konten — judul dan gambar — dan dapat memiliki, di dekat tepi kanan, tampilan aksesori. Tampilan aksesori standar adalah indikator pengungkapan atau tombol pengungkapan detail; yang pertama mengarah ke tingkat berikutnya dalam hierarki data dan yang terakhir mengarah ke tampilan terperinci dari item yang dipilih. Tampilan aksesori juga dapat berupa kontrol kerangka kerja, seperti sakelar dan slider, atau dapat berupa tampilan kustom. Tampilan tabel dapat memasuki mode pengeditan di mana pengguna dapat menyisipkan, menghapus, dan menyusun ulang baris tabel.
Inilah kriteria saya:
Jika UITableView bisa melakukannya, gunakanlah
Jika UITableView membutuhkan banyak kode untuk melakukannya atau tidak bisa melakukannya sama sekali, gunakan UICollectionView.
Anda harus mempertimbangkan batasan pada UITableView sebelum membuat keputusan: Ini adalah satu kolom. Dan Anda hanya dapat menyesuaikan sel, tetapi bukan latar belakang bagian dan semacamnya. Jadi jika Anda memiliki daftar langsung hal-hal tanpa embel-embel tambahan - yang terlihat seperti tampilan iOS standar rawa, pada dasarnya - maka gunakan UITableview. Jika Anda memiliki inset khusus, atau batas di sekitar setiap bagian, gunakan UICollectionView.
Saya sebenarnya sedang mempertimbangkan UICollectionView untuk semua hal hanya karena sangat mahal saat Anda mulai mengembangkan tampilan sebagai tampilan tabel, kemudian mengetahui bahwa UICollectionView tidak dapat melakukan satu hal yang Anda perlukan. Pengalaman tangan pertama;)Edit setelah lebih banyak pengalaman dengan keduanya: Abaikan paragraf terakhir itu. UICollectionView membutuhkan banyak kode boilerplate untuk membuatnya berfungsi seperti UITableView. Gunakan UICollectionView hanya jika benar-benar dibutuhkan. ;)
sumber
Untuk daftar sederhana dan navigasi maju / mundur, gunakan
UITableView
.Jika Anda membutuhkan tingkat penyesuaian yang tinggi, gunakan
UICollectionView
.Secara umum, dalam pengembangan perangkat lunak, yang terbaik adalah memilih pendekatan yang mewakili "Hal yang Mungkin Paling Sederhana".
EDIT: Mulai iOS 14,
UICollectionView
sekarang dapat melakukan daftar juga dan sekarang menjadi pendekatan yang direkomendasikan. Lihat sesi ini dari WWDC20 untuk informasi lebih lanjut dan detail implementasi: https://developer.apple.com/videos/play/wwdc2020/10026/sumber
Menurut sudut pandang saya, perbedaan utama antara collectionView dan tableView adalah itu
Semoga bisa membantu Anda.
sumber
Jika Anda memilih UITableView untuk iPhone, pastikan Anda telah mempertimbangkan strategi iPad Anda terlebih dahulu. Jika Anda menginginkan tata letak khusus iPad, Anda mungkin ingin tata letak satu kolom itu menjadi kisi.
sumber
Meski tidak wajib, saya selalu menggunakan collectionview. Dengan cara itu saya dapat dengan mudah menyesuaikan bagaimana koleksi saya disajikan untuk resolusi yang berbeda. Nilai tambahnya adalah ia siap menambahkan jenis sel baru dengan cepat saat melakukan pemfaktoran ulang di masa mendatang.
Saya melihat tidak ada gunanya tampilan tabel. Sangat mudah menggunakan tampilan koleksi untuk mewakili tabel. IMO.
sumber
Ini sepenuhnya tergantung pada bagaimana data Anda ditampilkan. Seperti yang disebutkan oleh banyak orang di atas, jika Anda hanya memerlukan satu set data dan itu terlalu tidak rumit,
UITableView
gunakan yang lainUICollectionView
.UICollectionView
ramah kustomisasi.Jika Anda berurusan dengan beberapa ketinggian sel atau lebih, maka lakukan
UICollectionView
.sumber
Dari pengalaman pribadi saya, kedua elemen itu hanya boleh dibandingkan secara longgar.
TableView
TableView adalah elemen UI yang dirancang untuk menampilkan data dalam format daftar. Ada fungsionalitas tertentu yang menjadi standar dengan UITableView, seperti:
Elemen di atas meningkatkan kegunaan data saat menampilkan dan berinteraksi dalam format daftar. Seperti melihat email.
CollectionView
CollectionView adalah elemen UI yang dirancang untuk menampilkan konten menggunakan tata letak khusus (biasanya apa pun yang bukan daftar). CollectionView meningkatkan fungsionalitas menampilkan data dalam gaya tata letak yang benar-benar dipesan lebih dahulu dan juga secara dinamis mengubah tata letak dengan cepat. Beberapa contohnya adalah:
CollectionView juga memungkinkan beberapa pilihan.
Kesimpulan
Seperti yang Anda lihat di atas, keduanya memiliki kasus penggunaan yang sangat berbeda dan dirancang untuk meningkatkan pengembangan dan kegunaan kumpulan data spesifik mereka sendiri.
Jika Anda ingin menampilkan sesuatu dalam gaya daftar dengan interaksi berikut: - Menambahkan - Menghapus - Mengurutkan Ulang Kemudian UITableView akan menyederhanakan proses ini dengan memberikan dukungan langsung dari kotaknya.
Apa pun yang lain, Anda harus memanfaatkan manfaat CollectionView karena Anda memiliki lebih banyak fleksibilitas.
sumber
Keduanya tergantung dari kebutuhan. Tampilan Tabel juga memiliki dukungan untuk berbagai skenario pengeditan. Dukungan ini belum diterapkan di kelas Tampilan Koleksi. Jika Anda mengonversi dari Tampilan Tabel yang mengandalkan metode ini, perkirakan untuk melakukan pengangkatan yang lebih berat dalam Tampilan Koleksi. Header bagian Collection View dapat ditempatkan di mana saja dalam tampilan. dan UITableView tidak perlu mengatur tombol dengan tag atau hal lain dengan mendapatkan nilai item yang dipilih.
sumber
Dalam praktiknya, semua orang menggunakan UICollectionView yang saya temui, padahal mereka hanya membutuhkan UITableView. "Ini satu dimensi. Ini naik dan turun. Mengapa Anda menambahkan metode delegasi yang tidak perlu untuk tata letak AND data?". Saya pernah menghabiskan 2 jam ekstra untuk membantu startup mencari tahu mengapa UICollectionViewCell mereka tertekan karena pemiliknya, yang tidak membaca manual Animations, atau HIG, atau panduan UICollectionView, memutuskan untuk menggunakannya dan menambahkan ketinggian variabel dan anim. Tak perlu dikatakan lagi, dia membuat dirinya sendiri pusing dan banyak kehilangan waktu untuk masalah non-bisnis-kritis yang bisa dia hindari hanya dengan menggunakan sel tabel, karena tidak ada delegasi tata letak tambahan + Nib.
Biarkan saya meluruskan ini, saya mendukung UICollectionView ketika data dan tampilan Anda membutuhkannya. Mereka sangat kuat. Namun dalam praktiknya, kebanyakan orang yang pernah saya lihat telah menggunakannya dalam daftar.
Ini memunculkan kesalahan lain. Mereka juga digunakan pada daftar pendek dan konstan yang tidak akan pernah berubah. Dalam hal ini, buat saja Xib. Atau tulis tampilan ubahsuaian yang menyusunnya. Mengapa? Karena Anda tidak memerlukan manajemen memori untuk 5 set label dengan tombol atau sakelar. Jika mereka mungkin berubah, maka ya, gunakan daftar. Jika Anda menginginkan fisika, maka UICollectionView bekerja dengan baik dengan beberapa efek keren. Tetapi apakah Anda benar-benar perlu menambahkan 5 metode delegasi dan sistem tata letak untuk 5 label yang tidak akan pernah bergerak?
Juga, saya tidak lupa bahwa iOS memiliki tampilan susun asli sekarang juga. Saya tidak pernah bisa mengubah bentuknya seperti yang saya inginkan, meskipun saya cukup mahir dalam 2D dan sistem animasinya, jadi saya tidak pernah menggunakan yang built-in.
Yang saya katakan adalah, tentukan kebutuhan Anda. Mungkin Anda tidak memerlukan salah satu dari ini, jika UI Anda tidak menambah / menghapus item dan menyegarkan sendiri. Atau mungkin Anda ingin menulis Permainan Kartu dan membuangnya secara virtual di atas meja, lalu gunakan UICollectionView dengan sistem fisika untuk panduan tata letaknya.
sumber
Berdasarkan kebutuhan kita, kita memilih TableView atau CollectionView.
Contoh:
sumber
Saya mengalami masalah ini dalam proyek saya saat ini. Yang akan digunakan. Dalam kasus saya itu sangat sederhana. Saya membutuhkan keduanya. Saya membutuhkan tampilan saya agar terlihat seperti UITableView dan juga untuk mengubah perubahan / tata letaknya. Jadi, UICollectionView digunakan. Saya juga menggunakan UITableView di mana pun saya tidak memerlukan penyesuaian tambahan. Karena UiTableView hadir dengan tata letak default yang menyertakan gambar dan teks - saya menggunakannya untuk kesederhanaan.
sumber
Berdasarkan kebutuhan kami, kami memilih tampilan UITableView atau UICollection.
Jika kami ingin menampilkan gambar atau item dalam tipe grid atau jika kami membutuhkan lebih banyak penyesuaian, kami menggunakan UICollectionview.
Untuk mendaftar setiap item dengan detail dan subdetail kami menggunakan UITableView.
UICollectionView: Kelas UICollectionView mengelola kumpulan item data yang diurutkan dan menyajikannya menggunakan tata letak yang dapat disesuaikan. Tampilan kumpulan menyediakan fungsi umum yang sama seperti tampilan tabel kecuali bahwa tampilan kumpulan dapat mendukung lebih dari sekadar tata letak kolom tunggal.
UITableView: Tampilan tabel menampilkan daftar item dalam satu kolom. UITableView adalah subclass dari UIScrollView, yang memungkinkan pengguna untuk menggulir tabel, meskipun UITableView hanya mengizinkan pengguliran vertikal.
sumber
Sesuai tampilan saya untuk tampilan Grid View gunakan UI Collection View. Semua tampilan daftar lainnya menggunakan UITable View
sumber
Secara pribadi saya pikir UICollectionView dapat melakukan sebagian besar pekerjaan yang dapat dilakukan UITableview. baik, pada saat yang sama, ini lebih rumit untuk digunakan.
Saya sarankan Anda menggunakan UICollectionView sebagai TableView kalau-kalau manajer Anda mengubah persyaratan di masa mendatang.
sumber