swift3.0如何优雅的自定义tableViewcell,最简单的自定义cell,闭包事件传递,代码封装。

xiaoxiao2021-02-28  108

一:最近在自学swift3.0,故而把OC中最简单自定义cell的方法,照搬到swift试试。 下面说下设计思想。

     1.设计原理,提供接口。下面贴上控制器的代码

   

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // 1.提供类方法创建cell,默认就是复用好的了 let cell = HCustomTableViewCell.customCell(tableView: tableView) // 2.设置数据(开发中传递model) cell.settingCellData(title: "当前是第:\(indexPath.row)行") // 3.事件传递(将封装cell内部子控件的点击事件回调控制器) cell.btnClickBlock = { () in print("点击了按钮,当前是第:\(indexPath.row)行 ,且事件传递到了控制器内"); } // 4. 返回cell。 这基本上能适用100%任何一个你需要的自定义cell的类型 return cell }

   

      怎么样,感觉如何。。从此控制器里再没有复用等太多乱七八槽的代码,简单到几句代码搞定

  2.下面看下自定义cell里面的两个接口方法,一个类方法创建cell,一个是设置cell数据

// MARK:- public public class func customCell(tableView : UITableView)->HCustomTableViewCell{ let reuseIdentifier = "HCustomTableViewCell"; var cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier) if (cell == nil) { cell = HCustomTableViewCell(style: .default, reuseIdentifier: reuseIdentifier) } return cell as! HCustomTableViewCell } public func settingCellData(title : String) { titleLabel.text = title }

3。其次也就是闭包的属性的设置,以及调用了。

     

// 格式( (参数)-> (返回值) ) public var btnClickBlock:( ()->() )? 

   按钮的点击事件

  

@objc private func actionBtnClick(){ btnClickBlock!() } 额:写到这里就完了,,有木有很简单。。。程序学习之路,从精简每一句代码开始

     github地址:swift3.0 最简单的自定义tableViewcell

如果你喜欢这篇文章,或者有任何疑问,可以扫描第一个二维码,加楼主好友哦

也可以扫第二个二维码,关注楼主个人微信公众号。这里有很多生活,职业,技术相关的文章哦。欢迎您的到来。

微信号:                                             公众号

转载请注明原文地址: https://www.6miu.com/read-24864.html

最新回复(0)