“UITableViewCell”类型的值?没有会员'委托'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“UITableViewCell”类型的值?没有会员'委托'相关的知识,希望对你有一定的参考价值。
我在我的TableViewCell
类中创建了一个自定义委托,并在tableView类中调用它,但不知道为什么会出现这个错误。
TableView类: -
//Cell For Row at indexPath
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
if (0 == indexPath.section)
{
let cell = tableView.dequeueReusableCell(withIdentifier: "FirstRowCell") as! FirstRowCell
cell.btnReview.addTarget(self, action: #selector(GotoReview), for: UIControlEvents.touchUpInside)
//cell.
return cell
}
else if ( 1 == indexPath.section)
{
let identifier = "TableCollectionCell"
var tableCollectionCell = tableView.dequeueReusableCell(withIdentifier: identifier)
if(tableCollectionCell == nil)
{
let nib:Array = Bundle.main.loadNibNamed("TableCollectionCell", owner: self, options: nil)!
tableCollectionCell = nib[0] as! TableCollectionCell
//Delegate
tableCollectionCell.delegate = self
}
return tableCollectionCell!
}
else
{
let identifier = "BrandImagesTableCell"
var brandImagesTableCell = tableView.dequeueReusableCell(withIdentifier: identifier)
if(brandImagesTableCell == nil)
{
let nib:Array = Bundle.main.loadNibNamed("BrandImagesTableCell", owner: self, options: nil)!
brandImagesTableCell = nib[0] as? BrandImagesTableCell
}
return brandImagesTableCell!
}
}
extension HomeViewController : CollectionViewCellTap
{
func didTapCollectionViewCell(indexPath: Int) {
let gotoCreateGroup = self.storyboard?.instantiateViewController(withIdentifier: "CreateGroupView") as! CreateGroupView
self.present(gotoCreateGroup, animated: true, completion: nil)
}
}
从UITableViewCell类调用: -
protocol CollectionViewCellTap
{
func didTapCollectionViewCell(indexPath : Int)
}
class TableCollectionCell: UITableViewCell {
@IBOutlet weak var collectionView: UICollectionView!
var delegate : CollectionViewCellTap?
override func awakeFromNib() {
super.awakeFromNib()
//collectionView cell
collectionView!.register(UINib(nibName: "CreateGroupCell", bundle: nil), forCellWithReuseIdentifier: "CreateGroupCell")
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
//Collection View
extension TableCollectionCell : UICollectionViewDataSource ,UICollectionViewDelegateFlowLayout
{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return 4
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CreateGroupCell", for: indexPath) as! CreateGroupCell
cell.groupName.text = ""
CreateCardView(viewCorner: cell.cardView)
if(0 == indexPath.row)
{
//cell.btnDotted.tag = indexPath.row
//cell.btnShare.tag = indexPath.row
cell.btnDotted.setImage(UIImage(named: "Info"), for: UIControlState.normal)
cell.btnShare.setImage(UIImage(named : "AddGroup"), for: UIControlState.normal)
}
else if(indexPath.row >= 1 && indexPath.row <= 3)
{
cell.btnDotted.isHidden = true
cell.btnShare.isHidden = true
cell.groupImage.image = UIImage(named: "group_dull_card.png")
}
else
{
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if ( 0 == indexPath.row) {
delegate?.didTapCollectionViewCell(indexPath: indexPath.row)
}
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 200, height: 150)
}
}
我是ios新手。
答案
当你使用CustomTableCell
启动单元格对象时,你需要明确指定dequeueReusableCell(withIdentifier:)
的类型,否则它认为UITableViewCell
的对象没有属性delegate
,所以只需在末尾添加as! TableCollectionCell
,所以现在你可以访问属性类TableCollectionCell
。
var tableCollectionCell = tableView.dequeueReusableCell(withIdentifier: identifier) as? TableCollectionCell
另一答案
检查这个 -
我想你错过了这个
以上是关于“UITableViewCell”类型的值?没有会员'委托'的主要内容,如果未能解决你的问题,请参考以下文章
无法将“UITableViewCell”(0x11e159aa0)类型的值转换为“test.CourseItemTableViewCell”
第一个 UITableViewCell 没有调用 didSelectRowAtIndexPath
UITableViewCell 正确地从 UITablView 出列,但它没有显示传递的值
如何按创建 UITableViewCell 时计算的值对 UITableView 进行排序?
在 UiTableViewCell 上设置时,DisclosureButton Indicator 或任何类型的附件类型似乎都没有出现