使用未声明的类型“tagCell”错误。创建 UICollectionViewCell 那种 xib

Posted

技术标签:

【中文标题】使用未声明的类型“tagCell”错误。创建 UICollectionViewCell 那种 xib【英文标题】:Use of undeclared type "tagCell" Error. Creating UICollectionViewCell that kind of xib 【发布时间】:2015-12-05 21:59:54 【问题描述】:

我正在尝试构建标签流布局并且我正在关注这个主题;

http://codentrick.com/create-a-tag-flow-layout-with-uicollectionview/

然后这段代码抛出了这个错误:Use of undeclared type 'tagCell'.

var tagCell = collectionView.dequeueReusableCellWithReuseIdentifier("tagCell", forIndexPath: indexPath) as! tagCell

我创建了这些文件;一个名为tagCell.xib 的xib,一个名为tagCell.swift 的文件。我在 xib 的自定义类下连接了这些文件。我不知道是什么问题,我没有错过这个话题。也许在 swift 2 中有一些变化。

我需要帮助。我寻找准备使用通过 swift 编写的库,但我没有找到。我现在必须自己编写代码。

有课。

//
//  tagCell.swift
//  matchMyTag
//
//  Created by Faruk Turgut on 05/12/15.
//

import UIKit

class tagCell: UICollectionViewCell 

    @IBOutlet weak var tagTitle: UILabel!
    @IBOutlet weak var plusLabel: UILabel!

    override func awakeFromNib() 
        self.backgroundColor = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
        self.tagTitle.textColor = UIColor(red: 0.1, green: 0.1, blue: 0.1, alpha: 1)
        self.plusLabel.textColor = UIColor(red: 0.1, green: 0.1, blue: 0.1, alpha: 1)
        self.layer.cornerRadius = 4

    



//
//  skillsNeedsViewController.swift
//  matchMyTag
//
//  Created by Faruk Turgut on 05/12/15.
//  Copyright © 2015 Faruk Turgut. All rights reserved.
//

import UIKit

class skillsNeedsViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate 


    @IBOutlet weak var collectionView: UICollectionView!
    let TAGS = ["Tech", "Design", "Humor", "Travel", "Music", "Writing", "Social Media", "Life", "Education", "Edtech", "Education Reform", "Photography", "Startup", "Poetry", "Women In Tech", "Female Founders", "Business", "Fiction", "Love", "Food", "Sports"]


    override func viewDidLoad() 
        super.viewDidLoad()
        collectionView.delegate = self
        collectionView.dataSource = self

        let cellNib = UINib(nibName: "tagCell", bundle: nil)
        self.collectionView.registerNib(cellNib, forCellWithReuseIdentifier: "tagCell")
        self.collectionView.backgroundColor = UIColor.clearColor()


        // Do any additional setup after loading the view.
    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int 
        return TAGS.count
    

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
        var tagCell = collectionView.dequeueReusableCellWithReuseIdentifier("tagCell", forIndexPath: indexPath) as! tagCell

        return tagCell
    



【问题讨论】:

刚刚更新了更多详细信息的答案。 【参考方案1】:

您需要在您的单元格上设置重用标识符。

只需打开您的故事板,从集合视图中选择单元格并将其设置如下:

更新:

此外,您必须始终使用CamelCase 命名您的类。 因此更改类名、.swift 文件名以及您想将类命名为 TagCell 的任何位置。虚线现在应该是这样的:

var tagCell = collectionView.dequeueReusableCellWithReuseIdentifier("tagCell", forIndexPath: indexPath) as! TagCell

【讨论】:

它没有用。 as! tagCell 部分仍有问题。【参考方案2】:

对我来说,退出 Xcode 并再次运行后它工作正常

【讨论】:

以上是关于使用未声明的类型“tagCell”错误。创建 UICollectionViewCell 那种 xib的主要内容,如果未能解决你的问题,请参考以下文章

Bridging-Header.h 文件和错误“使用未声明的类型...”

在 Swift 中声明任何类型的数组时使用未声明的类型“T”

ViewController 中的 Swift 错误“使用未声明的类型”

使用未声明类型“NSXMLElement”错误

jquery-ui 显示未捕获的类型错误

错误 C2027:使用未定义类型 - 如何声明类