Ios开发iOS学习开发Swift

Swift-dequeueReusableCell与dequeu

2017-03-23  本文已影响1367人  FlyElephant

UITableView中单元格复用有两种方法,dequeueReusableCell与dequeueReusableCell:indexPath.
<pre><code>` open func dequeueReusableCell(withIdentifier identifier: String) -> UITableViewCell? // Used by the delegate to acquire an already allocated cell, in lieu of allocating a new one.

@available(iOS 6.0, *)
open func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell // newer dequeue method guarantees a cell is returned and resized properly, assuming identifier is registered`</code></pre>

① 第一种方法最常用,不管UITableView是否注册,都可以执行以下代码:
<pre><code>var cell:UITableViewCell? = tableView.dequeueReusableCell(withIdentifier: "CustomTableCell") if cell == nil { cell = UITableViewCell.init(style: .default, reuseIdentifier: "CustomTableCell") }</code></pre>

② 第二种方法要求UITableView必须注册类或者nib文件:
<pre><code>self.tableView.register(UINib.init(nibName: "CustomTableCell", bundle:.main), forCellReuseIdentifier: "CustomTableCell")</code></pre>

<pre><code>let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "CustomTableCell", for: indexPath)</code></pre>
如果注册过,第一种方法的cell == nil判断则不需要执行~

上一篇下一篇

猜你喜欢

热点阅读