我从笔尖创建了一个自定义UITableView,并试图在ShopImagesViewCell的Size Inspector中更改行高。
ShopImagesViewCell.xib:
所以我写了代码来更改ShopImagesViewCell.swift中的行高。
class ShopImagesViewCell: UITableViewCell, UITableViewDelegate
{
@IBOutlet weak var imageCollectionView: UICollectionView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var starView: UIView!
@IBOutlet weak var starImageView: UIImageView!
override func awakeFromNib()
{
super.awakeFromNib()
//....
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{ // This function does not work.
return CGFloat(300) // 300 changes fluidly
}
}
extension ShopImagesViewCell
{
func setView()
{
self.imageCollectionView.delegate = self
self.imageCollectionView.dataSource = self
self.imageCollectionView.regCells(cells: ["ShopImageCollectionViewCell","ShopNonImageCollectionViewCell"])
}
}
由于该功能无法正常工作,我试图找到一种方法并试图做到
self.tableView.delegate = self
但是,tableView不存在,我尝试使用@outlet添加ShopImagesViewCell,但这是不可能的。
如何使以上功能起作用?
如果您想对其他源代码发表评论,请尽可能添加它。
答案 0 :(得分:1)
您的单元格是一个UITableViewCell
,其中包含一个UICollectionView
。因此,您的单元格类应符合UICollectionViewDataSource
和UICollectionViewDelegate`方法。表格视图单元不应实现任何表格视图数据源或委托方法,也不应遵守表格视图协议。将它们放在带有表视图的视图控制器中。