不要在UITableView中重用单元格

时间:2017-04-19 06:18:35

标签: ios iphone swift uitableview

let cell = tableView.dequeueReusableCellWithIdentifier("cellReuseIdentifier", forIndexPath: indexPath) as! CustomTableViewCell

创建单元格后,我不想重复使用单元格, 我想让它在内存中可用。

4 个答案:

答案 0 :(得分:12)

这当然是你的决定,但这是一个 非常糟糕 的想法。除非您tableView中的单元格少于10个,否则您将100%确定不再有单元格。否则,应用程序将在内存压力下快速崩溃。

不要dequeue单元格。每次都创建新的:

let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "CellReuseIdentifier")

不推荐,但毕竟这是你的决定。

答案 1 :(得分:0)

如果你的细胞数量有限,那么只有你应该使用这种方法

在viewDidLoad()上,您可以创建自定义单元格的NSArray

 self.arrMainCell.addObject(your custom cell);

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.arrMain.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = self.arrMain.objectAtIndex(indexPath.row)

 }

答案 2 :(得分:0)

在运行时需要单元格对象时,请调用表视图的dequeueReusableCell(withIdentifier:for :)方法,并传递所需单元格的重用标识符。 表视图维护一个已创建单元格的内部队列。

如果队列包含所请求类型的单元格,则表视图将返回该单元格。 如果不是,它将使用情节提要中的原型单元创建一个新单元。重用单元格可以通过在关键时刻(例如在滚动过程中)最小化内存分配来提高性能。

如果您更改自定义单元格视图的外观, 实现您的单元格子类的prepareForReuse()方法。 在您的实现中,将单元格视图的外观恢复为其原始状态。 例如,如果您更改单元格中视图的alpha属性,则将该属性恢复为其原始值

答案 3 :(得分:0)

不要使用表格视图。只需使用滚动视图。如果列表很长,无法将所有视图保存在内存中,请使用 tableview。