美文网首页iOS开发骚操作
一个类似Excel的表格视图

一个类似Excel的表格视图

作者: 开源者联盟 | 来源:发表于2019-12-09 10:20 被阅读0次

    之前写自己项目内部的应用调试工具箱:JXCaptain的时候。需要一个显示数据库的视图,需要有行列表头固定,并且表单内容可以上下左右滑动查看的特性,就像Excel视图一样。整个功能就只有一个ExcelView类,逻辑清晰简单,便于阅读和修改定制需求。

    预览

    image

    Github地址

    JXExcel

    特点

    • 使用纯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)")
        }
    

    相关文章

      网友评论

        本文标题:一个类似Excel的表格视图

        本文链接:https://www.haomeiwen.com/subject/izcbgctx.html