如何在已经是 NIB 的 UICollectionViewCell 中加载带有自定义单元格的 UITable
Posted
技术标签:
【中文标题】如何在已经是 NIB 的 UICollectionViewCell 中加载带有自定义单元格的 UITable【英文标题】:How to load a UITable with custom cell inside a UICollectionViewCell that is already a NIB 【发布时间】:2017-10-07 14:08:36 【问题描述】:我有一个 UICollection 视图,它有两个自定义单元格。 UICollectionViewCell 自定义单元格是使用 NIB 构建的。在其中一个 UICollectionViewCell NIB 中,我有一个 UITableView。但是,UITableView 本身具有自定义单元格。所以我的问题是:
如何为 UITableView 加载自定义单元格而不是 UICollectionViewCell NIB?
import UIKit
class HeaderFooterCollectionViewCell: UICollectionViewCell
//Tableview
@IBOutlet weak var tableView: UITableView!
//Buttons
@IBOutlet weak var resetButton: UIButton!
@IBOutlet weak var periodButton: UIButton!
@IBOutlet weak var undoButton: UIButton!
override func awakeFromNib()
super.awakeFromNib()
// Initialization code
// Register cell classes
tableView.register(UINib(nibName: "ShotInformationTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
extension HeaderFooterCollectionViewCell: UITableViewDataSource
func numberOfSections(in tableView: UITableView) -> Int
return 1
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 1
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ShotInformationTableViewCell
return cell
【问题讨论】:
【参考方案1】:let cell = Bundle.main.loadNibNamed("XIB_File_Name", owner: self, options: nil)?.first as! XIB_Class_Name
在几乎所有情况下,XIB_File_Name == XIB_Class_Name
【讨论】:
嘿@PaulS。我在返回cellForItem
时使用我的答案,但不幸的是它崩溃了,即使使用let cell = UINib(nibName: "XIB_File_Name", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! XIB_Class_Name
结果是一样的,那么我的答案对你有什么用?
这是我的代码let cell = Bundle.main.loadNibNamed("ShotInformationTableViewCell", owner: self, options: nil)?.first as! ShotInformationTableViewCell
工作正常,没有崩溃。
对不起,我问的是收藏视图的情况!以上是关于如何在已经是 NIB 的 UICollectionViewCell 中加载带有自定义单元格的 UITable的主要内容,如果未能解决你的问题,请参考以下文章
如何使用装饰器视图在 uicollection 视图中实现所需的设计
如何在 iOS swift 中的 ARSCNView 中显示 uicollection 视图