1、UITableView API文档总结:
//
//
// tableView.tableHeaderView = headerView;
2.5配置tableView表尾
// UIView *footView = [[UIView alloc]initWithFrame:CGRectMake(0, 508, kScreenWidth, 40)];
// footView.backgroundColor = [UIColor cyanColor];
// tableView.tableFooterView = footView;
//快速去除多余单元格
// tableView.tableFooterView = [[UIView alloc]init];
//
//
//
}
————————————————————————————————————
#pragma mark tableView的数据源代理方法
- (NSInteger)numberOfSectionsInTableView:( UITableView *)tableView{
根据数组元素的格式确定分区个数
// return self.bigArray.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
//
//
}
——————————————————————————————
//在这个方法中创建单元格并对单元格配置数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// UITableViewCell *cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil]autorelease];
#pragma mark cell的重用
//cell的重用是为了避免反复消耗资源,耗能达到节省内存的作业
//cell重用的步骤
//1.创建一个重用标识(重用ID),这个标识在cell创建的时候使用,也在从重用池取cell时判断使用
//面试题:使用static修饰重用标识的字符串变量,可以使其只被初始化一次,提高一下重用效率
static NSString *identfier = @"cell";
//2.当需要一个单元格(cell)时,先去"重用池"中根据"重用ID"去查找有没有可以使用单元格
//如果有:直接从重用池中拿出来使用(修改单元格上的数据)
//如果没有:此时只能直接创建一个新的单元格
//tableView就是当前代理的委托人
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :identfier];
//3.判断是否成功取到可重用的cell
if (cell == nil) {// !cell 一个意思
NSLog(@"=========");
————————————————————————————————
//
//
——————————————————————————————
//配置每个分区的页眉,叫区头也可以
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
// if (0 == section) {
// return @"L";
// }else if (1 == section){
// return @"W";
// }else{
// return @"Z";
// }
//根据排好序的数组返回区头
return self.orderkey[section];
}
//配置分区的右侧的分区索引,区头的顺序和数组中的元素一致
- (NSArray *)sectionIndexTitlesForTableView:( UITableView *)tableView{
// return @[@"F",@"S",@"G"];
//根据排好序的数组设置右侧分区索引
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
//
//
//
//
//
//
//
}
//配置分区的右侧的分区索引,区头的顺序和数组中的元素一致
- (NSArray *)sectionIndexTitlesForTab
//
}
//配置每个分区的页脚,叫区尾也可以
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
return @[@"f",@"s",@"l"][section];
}
- (void)didReceiveMemoryWarning {
[ super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
//配置每个分区的页脚,叫区尾也可以
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
}
- (void)didReceiveMemoryWarning {
}
————————————————————————————————
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#import
"DetailViewController.h"
@interface RootViewController ()<</span>UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,retain)NSArray *bigArray;
@property(nonatomic,retain)NSDictionary *dictionary;
@property(nonatomic,retain)NSArray *orderkey;
@end
@implementation RootViewController
- (void)dealloc{
self.bigArray = nil;
self.dictionary = nil;
self.orderkey = nil;
[ super dealloc];
#import
@interface RootViewController ()<</span>UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,retain)NSArray *bigArray;
@property(nonatomic,retain)NSDictionary *dictionary;
@property(nonatomic,retain)NSArray *orderkey;
@end
@implementation RootViewController
- (void)dealloc{
}
//
——————————————————————————————————
//返回cell的行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (0 != indexPath.row % 2) {
return 80;
} else{
return 200;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
}
//触发时机 :点击cell的时候会触发,所以要完成点击cell跳转到其他页面,方法实现写在这个方法中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
// NSLog(@"%ld -- %ld",indexPath.section,indexPath.row);
DetailViewController *detail = [[DetailViewController alloc]init];
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//
}
//触发时机:点击一个cell之后,在点击其他的cell时触发
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:( NSIndexPath *)indexPath NS_AVAILABLE_IOS(3_0){
//触发时机:点击一个cell之后,在点击其他的cell时触发
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPat
//NSLog(@"%ld -- %ld",indexPath.section,indexPath.row);
}
#pragma mark 从数组中取数据展示
//1.先取出大数组中的元素
//
最终效果图:
——————————————————————————————