Я пытаюсь отобразить базовую c сетку квадратов в виде коллекции. Я знаю количество столбцов и количество строк, которые я хотел бы визуализировать. Однако я не могу понять, как программно визуализировать квадраты.
У меня есть контроллер вида, который выглядит следующим образом:
class BoardViewController: UIViewController {
@IBOutlet weak var board: UICollectionView!
var game = Game()
override func viewDidLoad() {
super.viewDidLoad()
board.delegate = self
// Do any additional setup after loading the view.
}
}
extension BoardViewController: UICollectionViewDelegateFlowLayout {
}
extension BoardViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return game.getColumns() * game.getRows()
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
}
}
Я знаю, что мне нужно использовать метод cellForItemAt для визуализации пользовательских ячеек.
У меня также есть класс CustomView (под UIView), подобный этому:
import UIKit
class CustomView: UIView {
override init(frame: CGRect){
super.init(frame: frame)
self.backgroundColor = UIColor.blue
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
}
, а затем класс BoardGridCell:
class BoardGridCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
self.contentView = CustomView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
}
Документы Apple говорят:
"Чтобы настроить внешний вид вашей ячейки, добавьте представления, необходимые для представления содержимого элемента данных в качестве подпредставлений, к представлению в свойстве contentView. Не добавляйте подпредставления напрямую в саму ячейку. Ячейка управляет несколькими слоями содержимое, из которого представление содержимого является только одним. В дополнение к представлению содержимого ячейка управляет двумя фоновыми представлениями, которые отображают ячейку в ее выбранном и невыбранном состояниях. "
Однако всякий раз, когда я пытаюсь установить Свойство contentView, я получаю «Невозможно присвоить свойству:« contentView »является только для получения»
Итак, мой вопрос - как добавить подпредставления в свойство contentView?
Я очень новичок в Свифте, поэтому я был бы очень признателен, если бы кто-нибудь мог уточнить это для меня.
Спасибо