博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView的UITableViewStyleGrouped
阅读量:5145 次
发布时间:2019-06-13

本文共 4403 字,大约阅读时间需要 14 分钟。

UITableView的UITableViewStyleGrouped

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

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

源码:

TableViewData.h

////  TableVewData.h//  Sections////  Copyright (c) 2014年 Y.X. All rights reserved.//#import 
@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 ()
@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 = [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配置不同的标题.

看起来应该很直白:)

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/YouXianMing/p/3944866.html

你可能感兴趣的文章
uva 387 A Puzzling Problem (回溯)
查看>>
Oracle中包的创建
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
jQuery on(),live(),trigger()
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
OD使用教程20 - 调试篇20
查看>>
gzip
查看>>