Ios 每次创建新的UITableView(不重用任何单元格)
我有一个带有3种自定义单元格的表视图。 脚本中的接口 在项目中为单元格设置3个不同的类 我现在正在做这件事,结果是零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
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元素,而不是使用故事板出列