UICollectionView 不显示单元格和崩溃应用程序 Xcode 10.0
UICollectionView not displaying cells and crashing application Xcode 10.0
我是 Xcode 的新手,如果我遗漏了一些明显的东西,我深表歉意,但我已经坚持了好几天了。
我创建了一个 UICollectionView - collection view in storyboard
视图的每一侧都有 0 个约束,上面的标签也有一个约束。单元格中的图像和标签也有约束。
当我 运行 应用程序时,我得到了这个 - Running application
鉴于限制条件,我不确定这怎么可能。但是,如果我删除任何约束、编辑现有约束或完全删除它们,我只会收到 SIGABRT 异常。
我非常困惑,如果我的代码正在编译并且 运行ning,我假设填充 UICollectionView 的代码正在运行。有什么事吗
TestVC.swift
import UIKit
class TestVC: UIViewController, UICollectionViewDelegate,UICollectionViewDataSource {
@IBOutlet weak var myCollection: UICollectionView!
// making this an empty array incase the data hasn't loaded yet.
private(set) public var testArrays = [dataArrays]()
override func viewDidLoad() {
super.viewDidLoad()
myCollection.dataSource = self
myCollection.delegate = self
}
func initData(category: Category){
testArrays = DataService.instance.testData(forCategoryTitle: category.title)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return testArrays.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionViewCell", for: indexPath) as? collectionViewCell{
let testArray = testArrays[indexPath.row]
cell.updateViews(testArray: testArray)
return cell
}
return collectionViewCell()
}
}
collectionViewCell.swift
import UIKit
class collectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellImage: UIImageView!
@IBOutlet weak var cellLabel: UILabel!
func updateViews(dataarray: dataArrays) {
cellImage.image = UIImage(named: dataarray.imageName)
cellLabel.text = dataarray.title
}
}
Cell 本身未在属性检查器中注册,我将其更改为 - collectionViewCell,现在可以使用了。
我也遇到了约束问题,我没有完全阅读输出终端,作为新手,它看起来有点神秘,但我能够通过输出进行故障排除。
我是 Xcode 的新手,如果我遗漏了一些明显的东西,我深表歉意,但我已经坚持了好几天了。
我创建了一个 UICollectionView - collection view in storyboard
视图的每一侧都有 0 个约束,上面的标签也有一个约束。单元格中的图像和标签也有约束。
当我 运行 应用程序时,我得到了这个 - Running application
鉴于限制条件,我不确定这怎么可能。但是,如果我删除任何约束、编辑现有约束或完全删除它们,我只会收到 SIGABRT 异常。
我非常困惑,如果我的代码正在编译并且 运行ning,我假设填充 UICollectionView 的代码正在运行。有什么事吗
TestVC.swift
import UIKit
class TestVC: UIViewController, UICollectionViewDelegate,UICollectionViewDataSource {
@IBOutlet weak var myCollection: UICollectionView!
// making this an empty array incase the data hasn't loaded yet.
private(set) public var testArrays = [dataArrays]()
override func viewDidLoad() {
super.viewDidLoad()
myCollection.dataSource = self
myCollection.delegate = self
}
func initData(category: Category){
testArrays = DataService.instance.testData(forCategoryTitle: category.title)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return testArrays.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionViewCell", for: indexPath) as? collectionViewCell{
let testArray = testArrays[indexPath.row]
cell.updateViews(testArray: testArray)
return cell
}
return collectionViewCell()
}
}
collectionViewCell.swift
import UIKit
class collectionViewCell: UICollectionViewCell {
@IBOutlet weak var cellImage: UIImageView!
@IBOutlet weak var cellLabel: UILabel!
func updateViews(dataarray: dataArrays) {
cellImage.image = UIImage(named: dataarray.imageName)
cellLabel.text = dataarray.title
}
}
Cell 本身未在属性检查器中注册,我将其更改为 - collectionViewCell,现在可以使用了。
我也遇到了约束问题,我没有完全阅读输出终端,作为新手,它看起来有点神秘,但我能够通过输出进行故障排除。