如何在swift3中以另一种方法访问UITableView单元格

Posted

技术标签:

【中文标题】如何在swift3中以另一种方法访问UITableView单元格【英文标题】:How to access the UITableView cell in another method in swift3 【发布时间】:2017-08-14 13:57:04 【问题描述】:

在我的UITableView 中,我添加了 2 种类型的自定义单元格

let cell=tableView.dequeueReusableCell(withIdentifier: "SINGLECELL") as? TimesheetSingleCellTableViewCell

let cell=tableView.dequeueReusableCell(withIdentifier: "TIMESHEETCELL") as? TimeSheetTableViewCell

在每个单元格中,我都设置了这样的按钮标签和目标。

cell?.btnTimeChange.addTarget(self, action: #selector(timeChangeWheelClick(btn:)), for: .touchUpInside)
cell?.btnTimeChange.tag=indexPath.row

如何查看被点击的按钮是否属于cell类。

例如:

if(cell==TimeSheetTableViewCell)
else if(cell==TimesheetSingleCellTableViewCell)

请帮帮我。

【问题讨论】:

两个独立的选择器怎么样?或者使用回调闭包,它比目标/动作更方便(和通用)。 @vadian 我认为这会很棒。谢谢:) 【参考方案1】:

您必须使用is 函数,该函数告诉您变量的类型是您要与之比较的类还是子类。

if cell is TimeSheetTableViewCell 

 else if cell is TimesheetSingleCellTableViewCell 


您可以使用相应的IndexPath 访问单元格

let cell = tableView.cellForRow(at: IndexPath(row: button.tag, section: sectionNumber)

您还应该存储indexPath.section,除非您只有一个部分,否则您可以使用 0。

【讨论】:

谢谢。以及如何使用我的按钮标签访问单元格?我已将索引路径设置为按钮标签

以上是关于如何在swift3中以另一种方法访问UITableView单元格的主要内容,如果未能解决你的问题,请参考以下文章

本地文件导入到svn服务器中是怎么存在的,可以在服务器中查到源文件,还是在服务器中以另一种结构存在

尝试以另一种方法访问临时数组

如何以另一种方法从列表中获取一个结果?

当视图以另一种方法返回时,Laravel 返回空白页

为啥我能够有条件地以一种方式调用钩子,而不能以另一种方式调用?

如何使用正则表达式但以另一种格式替换文件的相同名称?