使用未声明的类型“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”