一:最近在自学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
如果你喜欢这篇文章,或者有任何疑问,可以扫描第一个二维码,加楼主好友哦
也可以扫第二个二维码,关注楼主个人微信公众号。这里有很多生活,职业,技术相关的文章哦。欢迎您的到来。
微信号: 公众号