Ios 如果单元格是UITableViewCell,我是否应该将其出列而不是分配?

Ios 如果单元格是UITableViewCell,我是否应该将其出列而不是分配?,ios,uitableview,Ios,Uitableview,更好的方法是什么: override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = UITableViewCell() return cell } 或 我知道dequeueReusableCellWithIdentifier将重用单元格。但在这种情况下,如果我们使用simple UITa

更好的方法是什么:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    return cell
}


我知道dequeueReusableCellWithIdentifier将重用单元格。但在这种情况下,如果我们使用simple UITableViewCell,性能会更好。

两者都很好。这取决于您想要什么类型的设置。至于DeQueReSeruabeLeCL,只需保存内存即可。它只分配一些单元格,这些单元格可以很容易地显示在设备屏幕上。例如,如果您的屏幕可以查看7个单元格,它将分配8个单元格,然后尝试将这些单元格重新用于不同数量的对象(与它们的indexPath相关)。

这两个都是绝对正确的。这取决于您想要什么类型的设置。至于DeQueReSeruabeLeCL,只需保存内存即可。它只分配一些单元格,这些单元格可以很容易地显示在设备屏幕上。例如,如果您的屏幕可以查看7个单元格,它将分配8个单元格,然后尝试将这些单元格重新用于与其indexPath相关的不同数量的对象。

您不应该使用第一种方法。从性能上看,排队列方法要好得多

如果需要具有不同样式或不同标签的单元格,请在情节提要中创建该单元格或创建子类


但是一定要使用出列方法。

永远不要使用第一种方法。从性能上看,排队列方法要好得多

如果需要具有不同样式或不同标签的单元格,请在情节提要中创建该单元格或创建子类


但是一定要使用出列方法。

在这种情况下,您所说的
是什么意思?哪种情况?这将是动态还是静态内容表视图?在这种情况下,您所说的
是什么意思?哪种情况?这将是动态还是静态内容表视图?但我不希望有任何不同的样式或不同的标签。它应该是简单的UITableViewCell,所以甚至不需要任何原型。在这种情况下,我从dequeueReusableCellWithIdentifier中获得了什么好处?@TarasChernyshenko使用dequeue方法在任何时候都只能为屏幕上的行数创建足够的单元格。对于已经创建的任何其他行,都将重用单元格。它们不再需要创建和配置。唯一需要做的事情是你在标签上设置文本等等。使用第一种方法,它也会(我想,我希望)为屏幕上的行创建足够的单元格,但当你滚动时,它会为进入视图的每一行创建新的单元格。甚至滚动到顶部也会创建新的单元格。因此,现在您有了每次都必须创建视图和所有子视图以及约束的开销。而不是仅仅设置文本等…但我不想要任何不同的样式或不同的标签。它应该是简单的UITableViewCell,所以甚至不需要任何原型。在这种情况下,我从dequeueReusableCellWithIdentifier中获得了什么好处?@TarasChernyshenko使用dequeue方法在任何时候都只能为屏幕上的行数创建足够的单元格。对于已经创建的任何其他行,都将重用单元格。它们不再需要创建和配置。唯一需要做的事情是你在标签上设置文本等等。使用第一种方法,它也会(我想,我希望)为屏幕上的行创建足够的单元格,但当你滚动时,它会为进入视图的每一行创建新的单元格。甚至滚动到顶部也会创建新的单元格。因此,现在您有了每次都必须创建视图和所有子视图以及约束的开销。而不是仅仅设置文本等。。。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) //cell has empty prototype in storyboard where setted this cellIdentifier
    return cell
}