我正在开发扫雷游戏,我选择使用UICollectionView作为游戏网格。我试图让它成为用户可以改变板/网格的大小。我现在所有设置都需要调用UICollectionView协议方法,就像最初设置时一样。我怎么能这样做?
这些是我在ViewController.swift中实现的方法,我想再次调用它。
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return board.squares.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// Get a SquareCollectionViewCell object
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "SquareCell", for: indexPath) as! SquareCollectionViewCell
// Get square that the collection view is trying to display
let square = board.squares[indexPath.row]
// Set that square for the cell
cell.setSquare(square)
// Make a border for the cell
cell.layer.borderWidth = 2
cell.layer.borderColor = UIColor.black.cgColor
return cell
}
我尝试了collectionView.reloadData(),但这对我不起作用。我希望这不是一个重复的问题或超级明显的问题。也许有更好的方法来做我想做的事情,但我仍然是新的,这就是我想出的。
编辑: 好的,我已编辑了我的代码,现在可以使用!好极了!我的新问题是我有第二个ViewController来改变电路板的大小(如设置视图),当我尝试从第二个ViewController将更改应用到电路板时,我在第一次更改collectionView时遇到此错误:
线程1:致命错误:在解包可选值时意外发现nil
所以我猜我正在查看不同的ViewController collectionView是否为零?对此有什么简单的解决方法吗?