Я столкнулся с проблемой с моим приложением.Я успешно сделал CollectionView с 5 ячейками, прокручивая по горизонтали.В каждой ячейке я хочу иметь табличное представление, которое будет отображать отдельные данные, полученные от Arduino.Но я не могу заставить просмотр таблицы отображаться вообще.
ALL код в этом представлении был сделан программно.
В частности, есть одна нить, которая дала мне надежду выяснить это самостоятельно.Я попробовал принятый ответ здесь: Как мне показать UITableView в UICollectionViewCell Но я все еще не работал.
Поскольку я неопытен в целом по Swift, и даже более тогоЯ подозреваю, что с проектированием в коде есть некоторые проблемы с ограничениями, так как я испытывал это раньше.
Вот код моей коллекции:
class ViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
let cellId = "cellId"
// Returns how many items in one sections
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath)
// displays different colors in all the 5 sections
let colors: [UIColor] = [.blue, .green, .gray, .red, .orange]
cell.backgroundColor = colors[indexPath.item]
return cell
}
//Determines the size for each cell
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width , height: view.frame.height - 50 )
}
//Minimize the line spacing between the sections ... return 0 (no spacing)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
А затем есть код таблицы:
class ReceivedCell: UICollectionViewCell {
lazy var tableView: UITableView = {
let tv = UITableView()
tv.delegate = self
tv.dataSource = self
tv.translatesAutoresizingMaskIntoConstraints = false
return tv
}()
let tableViewCell = "tableViewCell"
var array = ["test", "test1", "test2"]
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.blue
tableView.register(UITableViewCell.self, forCellReuseIdentifier: tableViewCell)
setupTableView()
//setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("Init(coder:) has not been implemented")
}
extension ReceivedCell: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: tableViewCell, for: indexPath)
cell.textLabel?.text = array[indexPath.item]
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50
}
}
Пожалуйста, не стесняйтесь задавать вопросы, если что-то неясно!Я так близок к завершению работы над моим приложением, что весь остальной код готов для перехода к представлению таблицы, я просто должен его отобразить.Большое спасибо, ребята!
РЕДАКТИРОВАТЬ
Я хочу иметь таблицу в каждом разделе 1 - 5