ios - 如何创建一个以 UITableViewCell 作为参数的函数?

标签 ios swift uitableview

我想知道我们是否可以创建一个动态函数来像这样动态访问单元格模板(xib 模板):

func create_image(TemplateName:??? = TemplateCell) {
    var cell = self.tableView.cellForRow(at: currindexpath as IndexPath) as! TemplateName
}

我想传递带有 UITableViewCell 类名称的“TemplateName”:

class template1: UITableViewCell {
}

所以在那个参数上我可以传递我制作的任何模板单元格。那可能吗?对不起,如果难以解释。

最佳答案

一句话:没有。 Swift 并不像您希望的那样动态。 as! 之后唯一可以跟随的是实际的字面类型名称 — 而不是对您将传入变量或参数的类型的某种引用。

作为替代方案,您可以将单元格出列,然后询问单元格是什么类型,从而安全且明确地向下转换:

let cell = // ... dequeue the cell as a UITableViewCell
if let cell = cell as? MyTableViewCell {
    // here, cell is a MyTableViewCell now
}

使用 switch 语句而不是 if,您可以为所有不同的单元格子类执行此操作。

关于ios - 如何创建一个以 UITableViewCell 作为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47447450/

相关文章:

objective-c - 在此算法中填充 NSArray 的最佳方法

Swift Regex 捕获括号之间的文件名?

ios - Swift 3 - 重用具有多个自定义单元格的单元格时出现问题

ios - UITableView 正在添加空行并禁用滚动

ios - ios 上嵌套 ScrollView 的可用性问题

ios - 将屏幕截图保存到沙箱

ios - iOS上查询当前应用的app id

swift - iOS QR 代码扫描仪多次触发操作

xcode - 如何从 Storyboard 中制作的弹出窗口中获取变量值? (在 swift 中)

swift - 将数据从 UIViewController 发送到 UIView