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 }
// 格式( (参数)-> (返回值) ) public var btnClickBlock:( ()->() )?
按钮的点击事件
@objc private func actionBtnClick(){ btnClickBlock!() }
额:写到这里就完了,,有木有很简单。。。程序学习之路,从精简每一句代码开始
github地址:swift3.0 最简单的自定义tableViewcell
阅读全文
0 0
- swift3.0 如何优雅的自定义tableViewcell,最简单的自定义cell,闭包事件传递,代码封装。
- swift3.0 自定义tableviewcell
- IOS:最简单一个使用自定义的TableViewCell例子
- 自定义cell,tableviewcell
- 自定义TableViewCell上的按钮-找到cell行数
- 自定义TableViewCell的使用方法
- TableViewCell组件的自定义
- 自定义TableviewCell的UIMenuController
- iOS 自定义TableViewCell封装
- 如何通过代码自定义高度不一致的cell
- 通过代码自定义TableViewCell(针对cell高度不一致)
- 自定义Cell的touch事件无反应
- 自定义Cell中按钮的点击事件
- 如何自定义一个优雅的ContentProvider
- 自定义一个tableViewCell的方法
- 自定义tableviewCell的选中效果
- 当cell的高度不一致时,如何通过代码自定义cell
- 60-给自定义的tableView的cell创建分割线(代码封装)
- 【jquery】Uncaught ReferenceError: xxxx is not defined
- ALLEGRO学习之如何出GERBER
- 适配器模式-对象,类,接口三种适配器
- 分布式,java,高并发系统设计,大神学习路线
- 51nod 1007 正整数分组(类背包)
- swift3.0 如何优雅的自定义tableViewcell,最简单的自定义cell,闭包事件传递,代码封装。
- antd mobile(八) webpack通过别名取代路径引用
- 文件管理
- 论文见解之SRN: Side-output Residual Network for Object Symmetry Detection in the Wild
- js判断浏览器类型
- 高性能网站架构设计之缓存篇(7)- Redis哨兵sentinel机制用法与说明
- HTML学习经验总结
- 微信统一下单_公众号支付_扫码支付
- C#解析XML字符串