iOS实现表格(非TableView)

来源:互联网 发布:淘宝店铺号及二维码 编辑:程序博客网 时间:2024/05/22 13:01

WhdeForm

iOS 表格项目地址:https://github.com/whde/WhdeForm

pod 'WhdeForm', '~> 1.0.0'
  • 添加了Reusable机制
  • 添加了横(Section)表头
  • 添加了竖(Column)表头
  • 添加了左上角(TopLeftHeader)总表头
  • 通过FDateSource去创建各个元素,类似TableView
  • 添加了FIndexPath,{section, column}
  • 表头添加点击事件
  • 添加了网格

使用

#import "ViewController.h"#import "FormScrollView.h"@interface ViewController ()<FDelegate, FDataSource> {    NSArray *_data;}@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    self.edgesForExtendedLayout = UIRectEdgeNone;    self.view.autoresizingMask = UIViewAutoresizingNone;    FormScrollView *table = [[FormScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64)];    table.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);    table.fDelegate = self;    table.fDataSource = self;    [self.view addSubview:table];    _data = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"datas" ofType:@"plist"]];    [table reloadData];}- (FTopLeftHeaderView *)topLeftHeadViewForForm:(FormScrollView *)formScrollView {    FTopLeftHeaderView *view = [formScrollView dequeueReusableTopLeftView];    if (view == NULL) {        view = [[FTopLeftHeaderView alloc] initWithSectionTitle:@"行数" columnTitle:@"列数"];    }    return view;}- (NSInteger)numberOfSection:(FormScrollView *)formScrollView {    return _data.count;}- (NSInteger)numberOfColumn:(FormScrollView *)formScrollView {    return 100;}- (CGFloat)heightForSection:(FormScrollView *)formScrollView {    return 44;}- (CGFloat)widthForColumn:(FormScrollView *)formScrollView {    return 80;}- (FormSectionHeaderView *)form:(FormScrollView *)formScrollView sectionHeaderAtSection:(NSInteger)section {    FormSectionHeaderView *header = [formScrollView dequeueReusableSectionWithIdentifier:@"Section"];    if (header == NULL) {        header = [[FormSectionHeaderView alloc] initWithIdentifier:@"Section"];    }    [header setTitle:[NSString stringWithFormat:@"第%ld行", (long)section] forState:UIControlStateNormal];    /*[header setBackgroundColor:[UIColor redColor]];*/    [header setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    return header;}- (FormColumnHeaderView *)form:(FormScrollView *)formScrollView columnHeaderAtColumn:(NSInteger)column {    FormColumnHeaderView *header = [formScrollView dequeueReusableColumnWithIdentifier:@"Column"];    if (header == NULL) {        header = [[FormColumnHeaderView alloc] initWithIdentifier:@"Column"];    }    [header setTitle:[NSString stringWithFormat:@"第%ld列", (long)column] forState:UIControlStateNormal];    /*[header setBackgroundColor:[UIColor greenColor]];*/    [header setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    return header;}- (FormCell *)form:(FormScrollView *)formScrollView cellForColumnAtIndexPath:(FIndexPath *)indexPath {    FormCell *cell = [formScrollView dequeueReusableCellWithIdentifier:@"Cell"];    NSLog(@"%@", cell);    if (cell == NULL) {        cell = [[FormCell alloc] initWithIdentifier:@"Cell"];        static int i=0;        i++;        NSLog(@"%d--%ld", i, (long)indexPath.section);    }    NSDictionary *dic = [_data objectAtIndex:indexPath.section];    [cell setTitle:dic[@"name"] forState:UIControlStateNormal];    [cell setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];    /*[cell setBackgroundColor:[UIColor yellowColor]];*/    return cell;}- (void)form:(FormScrollView *)formScrollView didSelectSectionAtIndex:(NSInteger)section {    NSLog(@"Click Section At Index:%ld", (long)section);}- (void)form:(FormScrollView *)formScrollView didSelectColumnAtIndex:(NSInteger)column {    NSLog(@"Click Cloumn At Index:%ld", (long)column);}- (void)form:(FormScrollView *)formScrollView didSelectCellAtIndexPath:(FIndexPath *)indexPath {    NSLog(@"Click Cell At IndexPath:%ld,%ld", (long)indexPath.section, (long)indexPath.column);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];}@end
0 0
原创粉丝点击