当前位置: 首页 > 知识库问答 >
问题:

加载UICollectionViewCell时,IBOutelt发现为零

韩安顺
2023-03-14

我正在研究如何创建一个没有故事板的简单应用程序,但我遇到了一个问题:我创建了一个名为HomeViewController的XIB,它内部有一个UICollectionView并在ViewDidLoad()中注册了单元格。之后,我创建了一个名为HomeCollectionViewCell的单元格,将Identifier作为“cell”,在该单元格中它有一个uilabel出口,该出口在.swift文件中引用。在设置了委托数据源之后,它具有数据源的强制方法,在进行单元格配置并通过设置任何文本调用标签时,它将返回NIL。我不知道为什么会这样,我在YouTube上看了几个视频,没有一个能解决这个问题。有人能帮我吗?

HomeViewController

class HomeViewController: UIViewController {

   @IBOutlet weak var collectionView: UICollectionView!

   var info = ["Image"]

   override func viewDidLoad() {
       super.viewDidLoad()
       collectionView.register(HomeCollectionViewCell.self, forCellWithReuseIdentifier: 
                               "cell")
       collectionView.delegate = self
       collectionView.dataSource = self
    }
  }

  extension HomeViewController: UICollectionViewDelegate, UICollectionViewDataSource {
      func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection 
                          section: Int) -> Int {
       
       return info.count
  }

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

       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: 
                                                     indexPath) as? HomeCollectionViewCell
       cell?.teste.text = "test"
       return cell!
    
  }


 }

HomeCollectionViewCell

class HomeCollectionViewCell: UICollectionViewCell {

   @IBOutlet weak var teste: UILabel!

   override func awakeFromNib() {
       super.awakeFromNib()
     
   }

 }

共有1个答案

公良同
2023-03-14

这是因为您必须注册Cell的笔尖,而不仅仅是类:

collectionView.register(UINib(nibName: "HomeCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "cell")
 类似资料:
  • 问题内容: 我给自己添加了一个,并为其创建了一个自定义单元。 我使用方法设置单元格的大小,并将每个单元格设置为高度和宽度。因此,基本上每个单元格都是屏幕宽度的一半,并且高度相同。 然后,我在单元格内部创建了一个单元,每个边缘固定到单元格的相对边缘,以便图像视图填充单元格。我也有一个在单元格中垂直和水平居中的。 但是,在初次加载时,单元格的大小正确,但左上角的小方块中的内容要小得多。(在下图中看到,

  • 问题内容: 我在Interface Builder中创建了一个自定义UICollectionViewCell,将其上的视图绑定到该类,然后当我想使用并将字符串设置为字符串上的标签时,tha标签的值为nil。 和子类的单元格: 问题答案: 我再打一次。 如果您使用的是情节提要,则不想调用此功能 。它将覆盖情节提要中的内容。 如果您仍然有问题请检查是否是 相同 的 ,并 在。

  • 问题内容: 我已经调整了控制器的构造函数和fxml,以便将控制器的fxml的所有设置都放在fxml中,除了FXML的构造和fxml的加载。这是我的控制器: 和我的fxml文件: 当调用fxmlLoader.load()并返回FXMLLoader时会发生stackoverflow fxmlLoader = new FXMLLoader(…),然后再次调用fxmlLoader.load()…为什么会发

  • 问题内容: 我正在使用Spring 3.0开发一个webapp,处于休眠状态。当我尝试在WAS 7.0上部署我的应用程序时,它给了我错误- 无法加载侦听器:org.springframework.web.context.ContextLoaderListener]:java.lang.ClassNotFoundException: 这是我的网络应用程序的外观: 引发的异常如下: 那么,web.xm

  • 我已经调整了控制器构造函数和fxml,所以除了fxml构造和fxml加载之外,控制器的所有fxml设置都在fxml中。这里是我的控制器:

  • 问题内容: 我正在尝试编写一个可扩展的UICollectionViewCell。如果用户按下topbutton,则单元格应扩展到其他高度并显示基础内容。 我的第一个实现以自定义UICollectionViewCell为特色,可以通过单击顶部按钮将其展开,但是collectionview也不会展开。Atm。该单元格是collectionview中的最后一个单元格,只需向下滑动即可,即可看到展开的内容