Skip to content

IOS表格自定义视图,支持XIB布局,支持代码布局,支持锁双向表头。The IOS table custom view supports the XIB layout, supports the code layout, and supports the bidirectional header of the lock.

Notifications You must be signed in to change notification settings

RmondJone/ExcelView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 

Repository files navigation

ExcelView

IOS表格自定义视图,支持XIB布局,支持代码布局,支持锁双向表头。

效果展示

image

更新日志

  • 更新时间2017年02月11日09:48:27 -----ExcelView V1.0.0

  • 更新时间2017年02月17日11:17:14 -----ExcelView V1.0.1

    添加表格宽度自适应,添加自定义第一行背景色属性和设置表格字体属性

  • 更新时间2017年02月27日15:58:07 -----ExcelView V1.0.2

    添加表格高度自适应,添加设置单元格最大列宽

  • 更新时间2017年02月28日20:23:50 -----ExcelView V1.0.3

    添加表格数据添加形式,原有数据添加形式保留,以每行数据为基本单元构造二维数组

  • 更新时间2017年03月17日15:22:02 -----ExcelView V1.0.4

    部分BUG修改,新增最小列宽属性

  • 更新时间2017年03月18日12:17:40 -----ExcelView V1.0.5

    新增滚动视图监听Block,滑动到最左侧或者最右侧自定义处理事件,防止有部分滚动视图嵌套表格的需求

  • 更新时间2017年04月05日11:20:31 -----ExcelView V1.0.6

    版本重大BUG修改,数据过多时会引起异常奔溃

    滚动时滚动视图数组不断增大从而引起遍历时间过长滚动缓慢问题(已重新设计方案)

    列表先左移再上移会错行问题。

  • 更新时间2017年04月05日15:51:24 -----ExcelView V1.0.7

    表格BUG修改,Cell复用问题导致的表格刷新,表头和表内容视图错列问题。

    Cell值初始化未清空导致的表格刷新滚动视图contentSize不对的问题。

  • 更新时间2017年04月10日18:01:46 -----ExcelView V1.0.8

    表格BUG修改,Iphone6 Plus手机表格内容视图没有适配的BUG修改

  • 更新时间2017年07月11日13:07:59 -----ExcelView V1.0.9

    表格BUG修改,当表格滑动到最右侧时偶尔不触发监听事件修改

  • 更新时间2017年08月31日17:21:55 -----ExcelView V1.1.0

    表格BUG修改,横屏时不能填充整个屏幕修改

API使用说明

    self.leftTableDataArray=(NSMutableArray *)@[@"塔城",@"哈密",@"和田",@"阿勒泰",@"克州"];
    self.rightTableHeadArray=(NSMutableArray *)@[@"当日收入(万)",@"同比",@"环比",@"当月收入(万)",@"同比",@"环比",@"当年收入(万)",@"同比",@"环比"];
    self.excelDataArray=(NSMutableArray *)@[@[@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"],@[@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"],@[@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"],@[@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"],@[@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"]];

    self.allTableDataArray=[NSMutableArray arrayWithCapacity:10];
    NSMutableArray *fristDatas=[NSMutableArray arrayWithCapacity:10];
    [fristDatas addObject:@"标题"];
    for (int i=0; i<22; i++) {
       [fristDatas addObject:[NSString stringWithFormat:@"标题%d",i]];
    }
    [self.allTableDataArray addObject:fristDatas];
    for (int i=0; i<99; i++) {
       NSMutableArray *rowDatas=[NSMutableArray arrayWithCapacity:10];
       [rowDatas addObject:[NSString stringWithFormat:@"标题%d",i]];
       for (int j=0; j<22;j++) {
           [rowDatas addObject:[NSString stringWithFormat:@"数据%d",j]];
       }
       [self.allTableDataArray addObject:rowDatas];
    }

    //代码方式添加
    ExcelView *excelView=[[ExcelView alloc]initWithFrame:CGRectMake(0, 280, UIScreenWidth, 270)];
    excelView.topTableHeadDatas=self.rightTableHeadArray;
    excelView.leftTabHeadDatas=self.leftTableDataArray;
    excelView.tableDatas=self.excelDataArray;
    excelView.isLockFristColumn=YES;
    excelView.isLockFristRow=YES;
    excelView.isColumnTitlte=YES;
    excelView.columnTitlte=@"地区";
    [excelView show];
    [self.view addSubview:excelView];


    //xib布局添加方式
    self.mExcelView.allTableDatas=self.allTableDataArray;
    self.mExcelView.isLockFristColumn=YES;
    self.mExcelView.isLockFristRow=YES;
    self.mExcelView.isColumnTitlte=YES;
    self.mExcelView.columnTitlte=@"地区";
    self.mExcelView.columnMaxWidth=200;
    self.mExcelView.columnMinWidth=100;
    [self.mExcelView showWithLeftBlock:^(CGPoint contentOffset) {
        NSLog(@"滚动到了最左侧!");
        NSLog(@"偏移量:%f",contentOffset.x);
    } AndWithRigthBlock:^(CGPoint contentOffset) {
        NSLog(@"滚动到了最右侧!");
        NSLog(@"偏移量:%f",contentOffset.x);
    }];

目前支持可自定义属性

/**
 是否锁定第一列
 */
@property BOOL isLockFristColumn;
/**
 是否锁定第一行
 */
@property BOOL isLockFristRow;
/**
 是否存在第一列列标题
 */
@property BOOL isColumnTitlte;
/**
 列标题名称(表格左上角数据)
 */
@property(nonatomic,copy) NSString *columnTitlte;
/**
 第一行表头数据(不包括表格左上角数据,只接收字符串)
 */
@property(nonatomic,retain) NSMutableArray *topTableHeadDatas;
/**
 第一列表头数据(不包括表格左上角数据,只接收字符串)

 */
@property(nonatomic,retain) NSMutableArray *leftTabHeadDatas;
/**
 表格数据(2维数组,不包括第一列和第一行数据,只接收字符串,例:@[@[],@[],....])
 */
@property(nonatomic,retain) NSMutableArray *tableDatas;

/**
 表格数据(2维数组,每一行为一个子单元,只接受字符串,例:@[@[],@[],....]
 设置该属性之后,columnTitlte、topTableHeadDatas、leftTabHeadDatas、tableDatas将被重置。
 */
@property(nonatomic,retain) NSMutableArray *allTableDatas;

/**
 设置字体
 */
@property(nonatomic,retain) UIFont *textFont;

/**
 第一行背景颜色
 */
@property(nonatomic,retain) UIColor *fristRowBackGround;
/**
 列最大宽度
 */
@property(nonatomic) CGFloat columnMaxWidth;
/**
 列最小宽度
 */
@property(nonatomic) CGFloat columnMinWidth;
/**
 显示,必须调用该方法,视图才会展现
 */
-(void)show;
/**
 滚动视图滑动到最左侧的Block
 */
@property(nonatomic,copy) ScrollViewToLeftBlock mLeftblock;
/**
 滚动视图滑动到最右侧的Block
 */
@property(nonatomic,copy) ScrollViewToRightBlock mRightblock;
/**
 显示,并加入滚动视图监听回调

 @param leftblock 滚动视图滑动到最左侧的Block
 @param rightblock 滚动视图滑动到最右侧的Block
 */
-(void)showWithLeftBlock:(ScrollViewToLeftBlock)leftblock AndWithRigthBlock:(ScrollViewToRightBlock) rightblock;

使用说明

  • 直接复制项目根目录里ExcelView文件夹到你的项目中
  • 在需要用的地方引入 #import "ExcelView.h" 头文件,或者直接在PCH文件中引入

问题反馈

  • 联系方式:QQ(2318560278)
  • 技术交流群:QQ(264587303)
  • Demo作者:郭翰林

About

IOS表格自定义视图,支持XIB布局,支持代码布局,支持锁双向表头。The IOS table custom view supports the XIB layout, supports the code layout, and supports the bidirectional header of the lock.

Resources

Stars

Watchers

Forks

Packages

No packages published