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

来源:互联网 发布:python 字典转成list 编辑:程序博客网 时间:2024/06/05 09:45


一:最近在自学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


阅读全文
0 0
原创粉丝点击