首页 > 代码库 > UITableView的UITableViewStyleGrouped

UITableView的UITableViewStyleGrouped

UITableView的UITableViewStyleGrouped

以下图例就是分组UITableViewStyleGrouped的样式

本人提供快速集成的方法,不弄脏你那双手:)

源码:

TableViewData.h

////  TableVewData.h//  Sections////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <Foundation/Foundation.h>@interface TableViewData : NSObject// 添加数据源 + 数据源标签- (void)addDataArray:(NSArray *)array arrayFlag:(NSString *)flag;// 对应区域中的row的个数- (NSInteger)numberOfRowsInSection:(NSInteger)section;// 有几个section- (NSInteger)numberOfSections;// 对应于Section上的flag值标签- (NSString *)flagInSection:(NSInteger)section;// 对应于indexPath中的数据- (id)dataInIndexPath:(NSIndexPath *)indexPath;@end

TableViewData.m

////  TableVewData.m//  Sections////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "TableViewData.h"@interface TableViewData ()@property (nonatomic, strong) NSMutableArray  *dataArray;@property (nonatomic, strong) NSMutableArray  *nameList;@end@implementation TableViewData- (instancetype)init{    self = [super init];    if (self)    {        _dataArray = [NSMutableArray new];        _nameList  = [NSMutableArray new];    }    return self;}- (void)addDataArray:(NSArray *)array arrayFlag:(NSString *)flag{    [_dataArray addObject:array];    [_nameList  addObject:flag];}- (NSInteger)numberOfRowsInSection:(NSInteger)section{    return [_dataArray[section] count];}- (NSInteger)numberOfSections{    return [_dataArray count];}- (NSString *)flagInSection:(NSInteger)section{    return _nameList[section];}- (id)dataInIndexPath:(NSIndexPath *)indexPath{    return _dataArray[indexPath.section][indexPath.row];}@end

使用情况:

////  RootViewController.m//  UITableViewGroup////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"#import "TableViewData.h"static NSString *reusedFlag = @"reusedFlag";@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate>@property (nonatomic, strong) UITableView    *tableView;@property (nonatomic, strong) TableViewData  *tableViewData;@end@implementation RootViewController- (void)viewDidLoad{    [super viewDidLoad];    // 初始化tableView(分组形势的tableView)    _tableView = [[UITableView alloc] initWithFrame:self.view.bounds                                              style:UITableViewStyleGrouped];    _tableView.delegate   = self;    _tableView.dataSource = self;    [self.view addSubview:_tableView];        // tableView数据    _tableViewData = http://www.mamicode.com/[TableViewData new];    [_tableViewData addDataArray:@[@"1", @"2", @"3"]         arrayFlag:@"设置"]; // section1    [_tableViewData addDataArray:@[@"", @"", @""]       arrayFlag:@"配置"]; // section2    [_tableViewData addDataArray:@[@"one", @"two", @"three"] arrayFlag:@"闲置"]; // section3}// 每个区多少个cell- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return [_tableViewData numberOfRowsInSection:section];}// 创建cell- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reusedFlag];    if (cell == nil)    {        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle                                      reuseIdentifier:reusedFlag];    }        // section1    if ([[_tableViewData flagInSection:indexPath.section] isEqualToString:@"设置"])    {        NSString *str            = [_tableViewData dataInIndexPath:indexPath];        cell.textLabel.text      = str;        cell.textLabel.textColor = [UIColor redColor];    }        // section2    if ([[_tableViewData flagInSection:indexPath.section] isEqualToString:@"配置"])    {        NSString *str            = [_tableViewData dataInIndexPath:indexPath];        cell.textLabel.text      = str;        cell.textLabel.textColor = [UIColor blueColor];    }        // section3    if ([[_tableViewData flagInSection:indexPath.section] isEqualToString:@"闲置"])    {        NSString *str            = [_tableViewData dataInIndexPath:indexPath];        cell.textLabel.text      = str;        cell.textLabel.textColor = [UIColor magentaColor];    }        return cell;}// 多少个区- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{    return [_tableViewData numberOfSections];}// 每个区的标题- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{    return [_tableViewData flagInSection:section];}@end

几个需要注意的地方:

以下两个方法是DataSource中的,直接与分组有关.

不同的section配置不同的标题.

看起来应该很直白:)

 

 

 

 

 

 

 

 

 

 

UITableView的UITableViewStyleGrouped