IOS表格自定义视图,支持XIB布局,支持代码布局,支持锁双向表头。
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 *)@[@[@"地区",@"当日收入(万)",@"同比",@"环比",@"当月收入(万)",@"同比",@"环比",@"当年收入(万)",@"同比",@"环比"],@[@"塔城",@"2.91111111111111111",@"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%11111111111111111111",@"5%",@"18",@"4.5%",@"6.8%"],@[@"克州",@"2.9",@"2%",@"3%",@"3.0",@"4%",@"5%",@"18",@"4.5%",@"6.8%"]]; //代码方式添加 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;