Ios 每次创建新的UITableView(不重用任何单元格)

Ios 每次创建新的UITableView(不重用任何单元格),ios,swift,uitableview,Ios,Swift,Uitableview,我有一个带有3种自定义单元格的表视图。 脚本中的接口 在项目中为单元格设置3个不同的类 我现在正在做这件事,结果是零 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = ListCell() cell.configureCell(Data[indexPath.row]) return cell

我有一个带有3种自定义单元格的表视图。 脚本中的接口

在项目中为单元格设置3个不同的类

我现在正在做这件事,结果是零

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = ListCell()
    cell.configureCell(Data[indexPath.row])
    return cell
}


class ListCell : UITableViewCell {

@IBOutlet weak var selectButton: UIButton!

func configureCell(data: ParamList) {
    selectButton.setTitle("Select " + data.name, forState: .Normal)
}

@IBAction func selectButtonPressed(sender: AnyObject) {
    print(selectButton.currentTitle)
}

}
我不想重用任何单元格,因为每个单元格都有不同的属性。 一些有文本框,另一些有不同的交互内容,需要在最后提交给Web服务

我想在内存中为每个单元格创建新的单元格。 最多15个单元格。所以不会有太多的内存问题


有什么方法可以做到吗?

在方法dequeueReusableCellWithIdentifier中设置nil。所以你可以得到你想要的内存单元数。

我终于解决了这个问题。 这是我为同样的目的所做的。 我正在描述我的过程,如果其他人也想这样做

警告,仅在绝对必要且没有太多可能影响性能的单元格时才执行此操作

为了使UITableView的单元格即使在屏幕外滚动也保留在内存中,请将表视图封装在滚动视图中,并将UITableView的scrollEnabled设置为false

如果使用故事板,请为TableView设置高度约束,并为代码文件设置IBOutlet

以编程方式添加具有不同标识符的新单元格

“\(indexPath.section)\(indexPath.row)”

获取数据后,将tableView的高度设置为数据计数的倍数

i、 e

tableViewHeightConstraint.constant=heightOfOneCell*data.count
tableView.delegate=self
tableView.dataSource=self


通过这种方式,您可以使用scrollView滚动,并且所有单元格仍将在内存中。

如果您希望能够从故事板中取出原型单元格,则需要使用不同的重用标识符创建适当数量的原型单元格。另一种方法是以编程方式创建UI元素,而不是使用故事板出列