UITableView---分组

UITableView分组,该例题分为5个组,每一组有5行,每行内容为当前组下标和行下标,有头标题(HAHA),无尾标题。

显示效果为:

代码如下:

#import "ViewController.h"

//遵守协议

@interface
ViewController () <UITableViewDelegate,UITableViewDataSource>

//UITableView

@property (nonatomic,weak)UITableView * tableView;

//分组头数据

@property (nonatomic,strong)
NSMutableArray * sectionArray;

//strong ---数据类型

//weak   ---控件之类的

@end

@implementation ViewController

- (void)viewDidLoad

{

[superviewDidLoad];

//加载数据

[self_loadData];

UITableView * table=[[UITableViewalloc]initWithFrame:CGRectMake(0,20,
self.view.frame.size.width,self.view.frame.size.height-20)style:UITableViewStyleGrouped];

table.delegate=self;

table.dataSource=self;

self.tableView=table;

table.sectionFooterHeight=0;  //如果有代理的话,此行没有效果,以代理为先

//table.sectionHeaderHeight=100;

[self.viewaddSubview:table];

}

#pragma mark - 加载数据

- (void) _loadData

{

NSArray * array=@[@"分组1",@"分组2",@"分组3",@"分组4",@"分组5"];

self.sectionArray=[NSMutableArrayarrayWithArray:array];

}

#pragma mark - UITableViewDatasource

//返回行数

- (NSInteger ) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

//return 3;  //在该分组中有3行

//return (section+1)*2;    //下标为0的分组有2行

//下标为1的分组有4行

//下标为2的分组有6行

//下标为3的分组有8行

returnself.sectionArray.count;

}

//返回cell

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath

{

static
NSString * identy=@"table";

UITableViewCell * cell=[tableViewdequeueReusableCellWithIdentifier:identy];

if (!cell)

{

cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identy];

}

cell.textLabel.text = [NSStringstringWithFormat:@"%li
%li",indexPath.section,indexPath.row]; //打印分组和行数

return cell;

}

#pragma mark - 返回分组数量

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView

{

returnself.sectionArray.count;
 //分组数组长度

//return 4;   //分组有4组

}

#pragma mark - UITableViewDelegate

//设置分组的头标题

- (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

{

return@"haha";

}

//设置分组的尾标题

//- (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

//{

//    return @"hello world";

//}

#pragma mark - 自定义头部

//- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

//{

//    UIView * view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)];

//    view.backgroundColor=[UIColor redColor];

//    return view;

//}

#pragma mark - 自定义尾部

//- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

//{

//    UIView * view=[[UIView alloc]init];

//    view.backgroundColor=[UIColor blueColor];

//    return  view;

//}

#pragma mark - 设置头部的高度

- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForHeaderInSection:(NSInteger)section

{

return
50;

}

#pragma mark - 设置尾部的高度

//- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForFooterInSection:(NSInteger)section

//{

//    return 30;

//}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

}

@end

时间: 2024-10-27 07:24:26

UITableView---分组的相关文章

iOS开发——UI篇&amp;代理/通知/Block传值(实现UItableView分组的收缩与展开)

代理/通知/Block传值实现UItableView分组的收缩与展开 初始化之后出现下面的界面 准备: 1:定义一个BOOL值用来记录点击 1 @property (nonatomic, assign, getter = isOpen) BOOL open; 2:在相应的点击方法里面是实现点击 1 self.group.open = !self.group.open; 3:在numberOfRowsInSection中返回的时候使用三木判断是否点击,并且实现伸缩与展开, 1 return mod

折叠UITableView分组实现方法

做项目的时侯用到了折叠分组,最近就研究了一下,找了一些网上的项目,发现有一些缺点,研究了几天自己终于写出了一个.而且分组的数据源比较灵活,每组之间的状态没有什么影响. 实现的大体思路是每个分组用一个section来保存,row0用来保存分组的标题,后面的cell保存每个分组的数据. 1.首先要创建一个保存每组的分组信息的model类,包括分组名,每组里面的cell,和当前组的开关状态. //MySection.h #import <Foundation/Foundation.h> @inter

IOS UITableView分组列表

UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped.这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显示而已.今天我们就看看分组的使用: 1.首先我们介绍一下分组的tableView,初始化一个tableView如下 #pragma mark - 加载表视图 - (void) loadTableView{ _tableView=[[UITableView alloc] initWithFrame:C

如何设置UITableView分组

storyboard 里边勾选分组grouped. UITableViewController 类里边写如下代码. - (instancetype)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:UITableViewStyleGrouped]; return self; } 3. 在view里边添加自定义的tableView self.tableView = [[UITableView alloc]init

UITableView分组冻结的研究与实现浅析

功能描述 当我们使用iphone手机通讯录,手机qq的时候.有一个细节大家可能已经忽略,即"分组"控件在向屏幕上方滑动时,超过屏幕的高度,就冻结到屏幕最上端.方便用户确定当前浏览的是哪个分组.当下面的分组上来时候,又会当前冻结的窗口顶上去,它自己又实现冻结!这就是分组冻结功能. 这篇两年前都应该写的博客,直到今天才写出来,才发现当初的设计和思路已经模糊,只能看代码来分析了.所以这篇文章只是回忆一下当初踊跃的思路. 为了能够说明白这个东西,再举一个例子.在使用excel的时候,冻结窗口的

IOS UITableView分组与索引分区实例

1 #import <UIKit/UIKit.h> 2 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window; 6 7 8 @end 1 #import "AppDelegate.h" 2 #import "RootViewController.h" 3 @interfa

iOS开发——UI篇Swift篇&amp;玩转UItableView(三)分组功能

UItableView分组功能 1 class UITableViewControllerGroup: UIViewController, UITableViewDataSource, UITableViewDelegate { 2 3 var titleString:String! 4 5 @IBOutlet var titleLabel:UILabel! 6 @IBOutlet var listTableView : UITableView! 7 8 9 //索引字母数组 10 var ar

UITableView---分组 省份城市列表+ 右列索引

UITableView分组显示省份城市列表+右侧索引 例题:分组名为省份名称,组内容为对应省份的城市名称,点击右边的索引,将对应的省份分组显示到到第一行. 显示效果如下: 对应plist文件如下图所示: #import "ViewController.h" //遵守协议 @interface ViewController () <UITableViewDelegate,UITableViewDataSource> //UITableView @property (nonat

NSIndexSet-入门浅析

NSIndexSet-入门浅析 记得上一次,用到,关于删除UITableView分组的方法 [tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section]withRowAnimation:UITableViewRowAnimationLeft]; 确实,搞不懂NSIndexSet是啥东东! 不懂就看呗! 在这里,整理了一下常用方法.高手绕道!多多指点! 1.NSIndexSet是什么? NSIndexSet