Допустим, контроллер представления, который отображает представление коллекции, называется StatsVC, тогда вам нужно добавить к нему представление коллекции в построителе интерфейса, щелкнуть collectionViewCell и присвоить ему идентификатор повторного использования (например, chartCell), а затем в коде:
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()
}}
Это основной способ сделать это, но он может выглядеть не очень красиво, следующим шагом является создание пользовательского класса collectionViewCell, и в InterfaceBuilder вы можете его спроектировать, а затем подключить выходы в своем пользовательском классе ChartCell (UICollectionVIewCell) и использовать этот пользовательский класс. ячейка в StatsVC. Преимущество пользовательской ячейки заключается в том, что у вас может быть метка вверху/внизу, которая описывает диаграмму или любой другой элемент пользовательского интерфейса, который вам нужен. Если вы храните все свои представления диаграмм в массиве, вы можете очень легко добавить их в collectionView с помощью вышеуказанного метода.
Обновить Чтобы создать представление программно, вы можете сделать следующее:
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]
Наконец, как вы видите выше, вы можете использовать indexPath.row в качестве индекса массива, чтобы вытащить следующий chartView и поместить его в collectionViewCell. Работа с коллекциями и табличными представлениями — не совсем тривиальная задача, поэтому я рекомендую спокойной ночи почитать в библиотеке Apple. Статья Tjios объясняет это подробно. https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/CollectionViewBasics/CollectionViewBasics.html
person
Andras M.
schedule
22.11.2017