ios - 使用委托和协议我无法访问 UIButton 内的功能
问题描述
我想在表格视图的检查按钮选择中显示/隐藏集合视图
我正在尝试为此使用委托和协议。
1.我在表格视图单元类中创建协议
protocol CustomCellDelegate{
func selectCollectionView(cell: InsideTableViewCell)
}
注意:我在主视图控制器中创建了 selectCollectionView 函数
2.在主视图类中声明委托变量
var delegate: CustomCellDelegate?
3.确认到主类中的CustomCellDelegate
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource,CustomCellDelegate
4.使用选择器函数在cellForRowAtIndexPath函数内部提供表格视图按钮
cell.checkButton.addTarget(self, action: #selector(self.selectCheck(_:)), for: .touchUpInside)
cell.delegate = self
5.选择器功能
@objc func selectCheck(_ sender: UIButton) {
if sender.isSelected {
sender.isSelected = false
print("Check 1")
delegate?.selectCollectionView(cell: InsideTableViewCell)
} else{
print("Check 2")
sender.isSelected = true
}
}
6.selectCollectionView函数
func selectCollectionView(cell: InsideTableViewCell) {
cell.clCollectionView.isHidden = true
}
我正在尝试在 selectCheck 按钮内调用 selectCollectionView 函数
但我收到类似“无法将'InsideTableViewCell.Type'类型的值转换为预期的参数类型'InsideTableViewCell'”的错误
如果我做错了,请告诉我。
我引用了这个链接:如何使用按钮标签快速访问自定义单元格的内容?
和输出截图:
解决方案
推荐阅读
- javascript - 队列在 discord.js 中不起作用,跳过老歌
- teamcity - TeamCity API 调用以获取对构建配置的修改列表
- kotlin - 在 kotlin 中运行以下代码时会创建多少个集合?
- sql - 无主键表批量删除的SQL查询
- javascript - 限制选中复选框的数量,但允许取消选中复选框 Angular 10
- c# - 是否可以在一个解决方案中拥有多个 git 项目?
- android - 如何在颤动中从一项活动导航到另一项活动
- c# - 值存储类的多线程锁语句
- php - 如何向空时返回错误的php函数添加if语句
- r - R中的ggplot2和log-log轴:如何创建正确的对角线?(GOF 图)