调用UICollectionView协议方法来更改单元格数量

时间:2018-06-02 06:55:09

标签: ios swift uicollectionview

我正在开发扫雷游戏,我选择使用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是否为零?对此有什么简单的解决方法吗?

0 个答案:

没有答案