• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    Objective-C
  • Created almost 8 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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作者:郭翰林

More Repositories

1

LockTableView

Android自定义表格,支持锁双向表头,自适应列宽,自适应行高,快速集成。Android custom table, support two-way lock header, adaptive column width, adaptive line width, rapid integration.
Java
583
star
2

AndroidCamera

Android自定义相机
Java
219
star
3

SpringDiaLog

自定义回弹广告栏,可以自定义内容视图。 Custom springback advertisement bar, you can customize content view
Java
38
star
4

ROG-Zephyrus-M15-Hackintosh-GU502LW

ROG 玩家国度 幻15(GU502LW)黑苹果 EFI配置文件
C++
21
star
5

WaterMarkImage

图片水印工具,可以直接直接添加水印遮罩图片,也可直接添加水印文字并自定义水印文字位置 Picture watermark tool, you can directly add watermarks, masks, pictures, you can also directly add watermark text, and customize the watermark text location
Java
12
star
6

i5-10600_H410TM-ITX_Hackintosh

I5 10600+H410TM-ITX黑苹果
11
star
7

JsonToAnyLanguage

Json字符串代码生成JetBrains插件
Java
11
star
8

react-native-locktable

Tables that can be locked in both directions on react native/一个在React Native上可以双向锁定的表格
Java
10
star
9

QuickTypeNode

QuickType NodeJS 应用
TypeScript
7
star
10

PicPngquant

工程批量压缩Python脚本
Python
7
star
11

YapiQuickType

IDEA Yapi QuickType插件,只需简单配置插件即可快速生成想要的实体
Kotlin
6
star
12

12400F_B660M-ITX-ac_5600XT_Hackintosh

12400F+B660M-ITX/ac+5600XT黑苹果 EFI
5
star
13

JsonToTypeScript

Json转TypeScript Class对象 WebStorm插件/Json to TypeScript Class object WebStorm plugin
Java
5
star
14

LockScreenDemo

Android自定义锁屏实现的一个Demo
Java
4
star
15

ASRock-B460M-ITX-ac-i5-10600

华擎B460M-ITX/ac + i5 10600 黑苹果
3
star
16

RmondJone.github.io

郭翰林的博客
HTML
2
star
17

Lenovo-Saviour14-i7-4720HQ

Lenovo 拯救者14 i7-4720HQ 黑苹果 EFI文件
2
star