Untuk menampilkan beberapa diagram seperti diagram batang, diagram lingkaran, diagram garis dalam satu tampilan koleksi di pengontrol tampilan

Persyaratan aplikasi saya adalah saya perlu menampilkan bagan yang berbeda seperti diagram lingkaran, diagram garis, diagram batang, dll. dalam tampilan koleksi di pengontrol tampilan. Saya berencana menggunakan perpustakaan yang paling sering digunakan untuk membuat grafik https://github.com/danielgindi/Charts .Untuk mengimplementasikan masing-masing jenis bagan satu per satu di halaman, kita harus membuat UIView dari kelas bagan tersebut. Misalnya untuk mengimplementasikan diagram lingkaran kita harus membuat tampilan kelas PieChartView. Pertanyaan saya adalah jika kita ingin grafik yang berbeda dalam satu tampilan koleksi, Bagaimana kita bisa mengimplementasikannya? Karena saya baru mengenal sampel kode pengembangan Swift akan sangat membantu.

Terima kasih sebelumnya.


person Community    schedule 22.11.2017    source sumber


Jawaban (1)


Katakanlah pengontrol tampilan yang menampilkan tampilan koleksi diberi nama StatsVC, maka Anda perlu menambahkan Tampilan koleksi ke dalamnya di pembuat antarmuka, klik pada collectionViewCell dan berikan pengenal penggunaan kembali (misalnya chartCell) lalu dalam kode: class StatcVC:UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { //create your charts here and put them in an array to be easier later on func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int -> Int { return numberOfCellsYouNeed } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath) -> UICollectionVIewCell{ if let cell = collectionView.dequeueReusableCell(withIdentifier:"chartCell", for: indexPath) { cell.addSubView(chartViews[indexPath.row]) return cell }else{ return UICollectionViewCell() }}

Ini adalah cara dasar untuk melakukannya tetapi mungkin tidak terlihat terlalu cantik, langkah selanjutnya adalah membuat kelas collectionViewCell khusus dan di InterfaceBuilder Anda dapat mendesainnya, lalu menghubungkan outlet di kelas khusus ChartCell Anda (UICollectionVIewCell) dan menggunakan kebiasaan ini sel di StatsVC. Keuntungan sel khusus adalah Anda dapat memiliki label di bagian atas/bawah yang menjelaskan bagan atau elemen UI lainnya yang Anda perlukan. Jika Anda menyimpan semua Tampilan bagan dalam array, Anda dapat dengan mudah menambahkannya ke collectionView dengan metode di atas.

Perbarui Untuk membuat tampilan secara terprogram, Anda dapat melakukan hal seperti ini:

let barChartView1 = BarChartView() let barChartView2 = BarChartView() barChartView1.data = ...// you do what you need to do here, I'm not familiar with your data/code... var chartViews = [barChartView1, barChartView2] Terakhir, seperti yang Anda lihat di atas, Anda dapat menggunakan indexPath.row sebagai indeks array untuk mengeluarkan chartView berikutnya dan memasukkannya ke dalam collectionViewCell. Bekerja dengan tampilan koleksi dan tabel bukanlah tugas yang sepele, jadi saya sarankan membaca malam yang baik di perpustakaan Apple. Artikel Tjios menjelaskannya secara detail. https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/CollectionViewBasics/CollectionViewBasics.html

person Andras M.    schedule 22.11.2017
comment
Terima kasih atas bantuannya.Tetapi github.com/danielgindi/Charts . menjelaskan tentang hanya menambahkan kelas tampilan di pembuat antarmuka. Saya tidak tahu cara menambahkannya secara terprogram dan menambahkannya dalam array. Bisakah Anda membagikan contoh kode untuk itu kepada saya. Terima kasih sebelumnya. - person ; 22.11.2017
comment
@ user8986838 apakah Anda mendapatkan solusi? - person jayant rawat; 17.02.2020