UICollectionView不显示

时间:2017-08-07 23:49:36

标签: ios swift swift3 uicollectionview xcode8

我的一个ViewControllers中有一个UICollectionView但它根本没有显示。我不知道为什么会这样。我已经编写了我已经获得的两种不同类型单元格的代码以及CollectionView的所有其他代码,但它不起作用。

如果你们需要任何类型的信息,我会很乐意把它给你,但我不会马上去做,因为有很多地方可能会出现问题,所以我不是马上发布所有这些内容。我希望你明白。

Fyi:我的代码是用swift 3编写的,所以你知道并且我已经尝试清理我的项目并从代码中断开CollectionView并重新连接它。

非常感谢

我真的需要你的帮助,因为我不知道为什么会这样。

好的,所以这是代码:

class AddPersonViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UICollectionViewDelegate, UICollectionViewDataSource, APCodeCollectionCellDelegate {

然后介于两者之间还有一些东西

这里我设置了数据源和委托

collectionView.delegate = self
collectionView.dataSource = self

这里我做了一些自定义

collectionView.layer.borderColor = UIColor(red: 2/255, green: 11/255, blue: 57/255, alpha: 1.0).cgColor
    collectionView.layer.borderWidth = 2
    collectionView.layer.cornerRadius = 15 
    collectionView.clipsToBounds = true

最后这里是数据源的所有代码

//Collection View Cells

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return person.codes.count + 1
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    if indexPath.row < self.person.codes.count {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CodeCell", for: indexPath) as! APCodeCollectionViewCell

        cell.codeTextView.text = person.codes[indexPath.row].code
        cell.nameLabel.text = person.codes[indexPath.row].title
        cell.isFavorite = person.codes[indexPath.row].favorite

        cell.codeTextView.layer.cornerRadius = 15

        cell.layer.cornerRadius = 4

        cell.backgroundColor = UIColor.white

        cell.delegate = self

        return cell

    } else {

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "AddCell", for: indexPath) as! APAddCodeCollectionViewCell

        cell.layer.cornerRadius = 4

        cell.backgroundColor = UIColor.white

        return cell
    }
}

我真的希望这会有所帮助,否则我只会重新做一遍......

3 个答案:

答案 0 :(得分:0)

您是否已将您的委托和数据源从集合视图连接到viewcontroller,请输入图像enter image description here

答案 1 :(得分:0)

首先检查您的委托和dataSource是否已连接,如果没有,则设置委托和dataSource: -

 class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { 
 override func viewDidLoad() {
    super.viewDidLoad()
    collectionView.delegate = self
    collectionView.dataSource = self 
 }

在swift 3中,一段时间内出现了不导入UICollectionViewDelegate和UICollectionViewDataSource的问题。 如果您不导入这些文件,请检查委托方法或在委托方法中使用这些名称cellForItemAtIndexPath,numberOfItemsInSection

 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
}
 func collectionView(_ collectionView: UICollectionView, cellForItemAtIndexPath indexPath: IndexPath) -> UICollectionViewCell {
}

答案 2 :(得分:-1)

按ctrl并将uiimageView拖到控制器内部 与你的标签和你的控制器内部做同样的事情 做你的员工。