ios - 表视图单元格内的集合视图未被调用
问题描述
我正在尝试在表格视图单元格中实现集合视图。
我的表格视图单元格是 xib,我已将集合视图拖入其中。
然后,我为集合视图单元创建了一个类和 xib:
class MyCollectionViewCell: UICollectionViewCell {
var media: Image?
@IBOutlet weak var imageView: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
func initialize(media: PostImage) {
self.media = media
if let url = media.url {
imageView.kf.setImage(with: URL(string: url))
}
}
}
我已经给 xib 类“MyCollectionViewCell”,也给它标识符“MyCollectionViewCell”。
然后,在我的表格视图单元格类中,我完成了以下操作:
class MyTableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource {
var post: Post!
@IBOutlet weak var title: UILabel!
@IBOutlet weak var mediaCollectionView: UICollectionView!
override func awakeFromNib() {
super.awakeFromNib()
mediaCollectionView.delegate = self
mediaCollectionView.dataSource = self
let mediaCollectionViewCell = UINib(nibName: "MyCollectionViewCell", bundle: nil)
mediaCollectionView.register(mediaCollectionViewCell, forCellWithReuseIdentifier: "MyCollectionViewCell")
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 2
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCollectionViewCell", for: indexPath as IndexPath) as? MyCollectionViewCell else {
fatalError("The dequeued cell is not an instance of MyCollectionViewCell.")
}
let media = post.images[indexPath.row]
cell.initialize(media: media)
return cell
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func initialize(post: Post) {
self.post = post
title.text = post.title
self.mediaCollectionView.reloadData()
}
}
问题是,当我运行它时,集合视图永远不会显示。标题标签文本显示正常,但集合视图不显示,我不知道我做错了什么。
cellForItemAt
甚至似乎都没有被调用,因为当我print("hello")
在函数顶部添加时,它永远不会出现在控制台中。
我究竟做错了什么?
解决方案
我认为问题是集合视图的高度非常小,没有显示。尝试设置表格视图单元格的高度:
func tableView(_: UITableView, heightForRowAt _: IndexPath) -> CGFloat {
return 100
}
其中 100 应该大于集合视图
推荐阅读
- sublimetext3 - 如何将多个键绑定到崇高的命令
- python - 如何使用 Python 3.6 系统变量打印方法/函数名称
- javascript - 我应该如何理解这条线?(-this.width)
- php - 能够通过使用箭头操作符 -> 的对象访问静态属性?
- r - 提取矩阵中每一行的最大值并输出它们的列名
- angular2-template - Angular2搜索过滤器如何显示没有找到记录
- html - 溢出-x 不工作 css
- python - 在 Python 中使用乌尔都语和阿拉伯语名称
- rest - Springboot中如何调用嵌套的api
- java - Spark Cassandra 连接器基础简单程序获取火花记录错误