之前写自己项目内部的应用调试工具箱:JXCaptain的时候。需要一个显示数据库的视图,需要有行列表头固定,并且表单内容可以上下左右滑动查看的特性,就像Excel视图一样。整个功能就只有一个ExcelView类,逻辑清晰简单,便于阅读和修改定制需求。
预览
特点
使用纯Swift编写;
功能简洁,便于源码阅读;
代码逻辑清晰,便于根据自己需求修改代码;
初始化ExcelView
excel = ExcelView(frame: CGRect.zero) excel.dataSource = self excel.delegate = self view.addSubview(excel)
实现ExcelViewDataSource
代理方法
func numberOfRows(in excelView: ExcelView) -> Int { return 50 } func numberOfColumns(in excelView: ExcelView) -> Int { return 10 } func excelView(_ excelView: ExcelView, columnNameAt column: Int) -> String { return "col:\(column)" } func excelView(_ excelView: ExcelView, rowDataAt row: Int) -> [String] { return dataSource[row] } func excelView(_ excelView: ExcelView, rowHeightAt row: Int) -> CGFloat { return 40 } func excelView(_ excelView: ExcelView, columnWidthAt column: Int) -> CGFloat { return 120 } func widthOfLeftHeader(in excelView: ExcelView) -> CGFloat { return 50 } func heightOfTopHeader(in excelView: ExcelView) -> CGFloat { return 40 }
实现ExcelViewDelegate
代理方法
func excelView(_ excelView: ExcelView, didTapGridWith content: String) { print("didTapGridWith:\(content)") } func excelView(_ excelView: ExcelView, didTapColumnHeaderWith name: String) { print("didTapColumnHeaderWith:\(name)") }
项目代码下载:http://code.662p.com/view/19125.html
发表评论 取消回复